Pythonで、文字列に別の文字列が含まれているかどうかを確認する方法はありますか?
文字列の操作は、どのプログラミング言語でも普通のタスクです。Pythonには、文字列が他の文字列を含んでいるかどうかをチェックするための2つの一般的な方法があります。
Pythonで文字列が他の文字列を含んでいるかどうかをチェックする。
Pythonの文字列はin演算子をサポートしています。そのため、文字列が他の文字列の一部であるかどうかをチェックするのに使用することができます。in演算子の構文は以下の通りです。
sub in str
「sub」という部分文字列が「str」の一部である場合、Trueを返し、そうでなければFalseを返します。Pythonでin演算子を使用する例をいくつか見てみましょう。
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')
if str2 in str1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
出力:
"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"
もしPythonのf-接頭辞付き文字列に慣れていない場合は、それはPython 3.6で導入された新しい文字列フォーマットの方法です。f-文字列については、Pythonのf-stringsに関して詳しく読むことができます。
in演算子を使用すると、内部では__contains__()関数が呼び出されます。この関数を直接使用することもできますが、可読性のために、in演算子の使用が推奨されています。
s = 'abc'
print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))
出力:
s contains a = True
s contains A = False
s contains X = False
別の部分文字列が含まれているかどうかを確認するために、find()を使用します。
私たちは、文字列に部分文字列が含まれているかどうかを確認するために、文字列のfind()関数も使用することができます。この関数は、部分文字列が見つかった最初のインデックス位置を返し、見つからない場合は-1を返します。
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
index = str1.find(str2)
if index != -1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
index = str1.find(str3)
if index != -1:
print(f'"{str1}" contains "{str3}"')
else:
print(f'"{str1}" does not contain "{str3}"')
出力:
"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"
私たちのGitHubリポジトリから、完全なPythonスクリプトやさらに多くのPythonの例をチェックアウトすることができます。