Pythonで文字列をスキャンして特定の文字を探す方法
in演算子で特定の文字が含まれているか確認する
Pythonで、ある文字が文字列の中に存在するかどうかを調べたいときは、in 演算子を使うのが最もシンプルで読みやすい方法です。式は True または False を返します。
>>> s = "Hello world" >>> 'e' in s True
複数の文字をまとめて検索する(set + any)
検索したい文字が1つではなく複数ある場合は、セット(set)を活用すると効率的です。候補となる文字をあらかじめセットに登録しておき、any() 関数と組み合わせることで、「文字列中にこれらの文字が1つでも含まれているか」を簡単に判定できます。
chars = set('0123456789$,')
s = "I have 9 cats"
if any((c in chars) for c in s):
print('Found')
else:
print('Not Found')このコードを実行すると、次のような出力が得られます。
Found
なお、古いPython 2のコードでは from sets import Set という書き方が使われていましたが、setsモジュールは廃止されているため、Python 3では上記のように組み込みの set() を使用してください。
すべての文字が条件を満たすか確認する(all)
逆に「文字列内のすべての文字が、指定した文字セットに含まれているか」を確認したい場合は、any() を all() に置き換えるだけでOKです。
chars = set('0123456789$,')
s = "I have 9 cats"
if all((c in chars) for c in s):
print('Found')
else:
print('Not Found')この場合、文字列 "I have 9 cats" には数字・$・カンマ以外の文字(アルファベットやスペースなど)が含まれているため、次のように出力されます。
Not Found
まとめ
- 1文字の有無を調べるなら
in演算子が最適 - 複数の文字のうちどれか1つでも含まれるか →
set+any() - すべての文字が条件を満たすか →
all()に置き換えるだけ
用途に応じてこれらの方法を使い分けることで、文字列スキャンの処理を簡潔かつ効率的に書くことができます。
-
Pythonで文字列から特定の文字を削除する方法【replace・正規表現・translate】
replace()メソッドで文字を削除する基本の方法Pythonの文字列(str型)には、部分文字列を別の文字列へ置き換えるためのreplace()メソッドが用意されています。削除したい文字を空文字列()に置き換えることで、その文字を取り除くことができます。>>> Hello people.replace(e, ) Hllo popl正規表現(re.sub)で複数の文字を一度に削除する1行のコードで複数種類の文字をまとめて削除したい場合は、正規表現モジュール re を使うのがおすすめです。削除したい文字を「|」(OR条件)で区切って指定し、re.sub(置換対象パターン, 置
-
Pythonで文字列に特定の文字のみが含まれているかを確認する方法
Pythonでは、文字列が特定の文字だけで構成されているかどうかを簡単にチェックできます。代表的な方法として、セット(set)を使う方法と正規表現(regex)を使う方法の2つがあります。それぞれ具体的なコード例とともに解説します。方法1:セット(set)を使った確認まず、許可したい文字の集合(セット)を宣言します。そして、検証したい文字列から作ったセットが、その許可セットの部分集合になっているかを確認します。例えば、文字列に「1」「2」「3」「4」のみが含まれているかをチェックしたい場合は、次のように書きます。allowed_chars = set(1234) validation_stri