Pythonで、文字列の中に特定の文字列が含まれているかを判定する方法を解説します。
Contents
文字列に特定の文字列が含まれているかの判定する
文字列に指定した特定の文字列が含まれているかを判定にはin演算子やnot in演算子を使用します。
なお、文字列から自分が探したい特定の文字列を検索する場合は、find, rfindメソッドやindex, rindexメソッドを使用します。その場合は、以下も参考にしていただければと思います。
文字列に特定の文字列が含まれていることを判定する ~in~
特定の文字列が含まれていることを判定する場合は、以下のようにin演算子を使用します。
sample_text = 'Pythonプロジェクト' # in による判定 print('--- in') print('Python' in sample_text) print('JAVA' in sample_text)
【実行結果】 --- in True False
in演算子では、特定の文字列が含まれている場合はTrue、含まれていない場合はFalseになります。
上記結果を見てもわかるように、in演算子で特定の文字列が含まれていることを判定できていることが分かるかと思います。
文字列に特定の文字列が含まれていないことを判定する ~not in~
特定の文字列が含まれていないことを判定する場合は、以下のようにnot in演算子を使用します。
sample_text = 'Pythonプロジェクト' # not in による判定 print('--- not in') print('Python' not in sample_text) print('JAVA' not in sample_text)
【実行結果】 --- not in False True
not in演算子では、in演算子とは逆で、特定の文字列が含まれていない場合はTrue、含まれている場合はFalseになります。
上記結果を見てもわかるように、not in演算子で特定の文字列が含まれていないことを判定できていることが分かるかと思います。
文字列が特定の文字列で始まる/終わるかを判定する ~ startswith/endswith ~
in演算子やnot in演算子を用いることで、特定の文字列が含まれているか、含まれていないかを判定することができました。
特定の文字列で「始まるか」または「終わるか」を判定する場合には、startswithメソッドまたはendswithメソッドを使用します。
文字列が特定の文字列で始まることを判定する ~startswith~
文字列が特定の文字列で「始まる」ことを判定するには、startswithメソッドを使用します。startswithメソッドは以下のように使用します。
sample_text = 'Pythonプロジェクト' # startswithによる判定 print('--- startswith') print(sample_text.startswith('Python')) print(sample_text.startswith('プロジェクト'))
【実行結果】 --- startswith True False
startswithメソッドでは、特定の文字列で始まる場合はTrue、始まらない場合はFalseとなります。上記結果を見ると文字列が指定した文字列で始まっていることが判定できていることが分かるかと思います。
なお、以下のようにnotを使用することで特定の文字列で「始まらない」という判定をすることも可能です。
sample_text = 'Pythonプロジェクト' # startswithによる判定 notによる反転 print('--- startswith') print(not sample_text.startswith('Python')) print(not sample_text.startswith('プロジェクト'))
【実行結果】 --- startswith False True
文字列が特定の文字列で終わることを判定する ~endswith~
文字列が特定の文字列で「終わる」ことを判定するには、endswithメソッドを使用します。endswithメソッドは以下のように使用します。
sample_text = 'Pythonプロジェクト' # endswithによる判定 print('--- endswith') print(sample_text.endswith('Python')) print(sample_text.endswith('プロジェクト'))
【実行結果】 --- endswith False True
endswithメソッドでは、特定の文字列で終わる場合はTrue、終わらない場合はFalseとなります。上記結果を見ると文字列が指定した文字列で終わっていることが判定できていることが分かるかと思います。
なお、以下のようにnotを使用することで特定の文字列で「終わらない」という判定をすることも可能です。
sample_text = 'Pythonプロジェクト' # endswithによる判定 notによる反転 print('--- endswith') print(not sample_text.endswith('Python')) print(not sample_text.endswith('プロジェクト'))
【実行結果】 --- endswith True False
上記で紹介しているソースコードについてはgithubにて公開しています。参考にしていただければと思います。