Pythonで、文字列の中に特定の文字列が含まれているかを判定する方法を解説します。
Contents
文字列に特定の文字列が含まれているかの判定する
プログラミングでは文字列に特定の文字が含まれているか判定し、処理を分岐するといったことがよくあります。
文字列に指定した特定の文字列が含まれているかを判定するにはin演算子やnot in演算子を使用します。また、文字列が特定の文字列で始まるか、終わるかを判定したい場合には、startswithメソッドやendswithメソッドが使用できます。
本記事では、上記のような文字列に特定の文字列が含まれるか、特定の文字列で始まる/終わるかを判定する方法について紹介します。
文字列から特定文字列の位置を検索したい場合は、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になります。
文字列に特定の文字列が含まれていないことを判定する 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になります。
文字列が特定の文字列で始まることを判定する 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("--- not startswith") print(not sample_text.startswith("Python")) print(not sample_text.startswith("プロジェクト"))
【実行結果】 --- not startswith False True
上記のようにnotを使用することで判定結果が反転します。
文字列が特定の文字列で終わることを判定する 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("--- not endswith") print(not sample_text.endswith("Python")) print(not sample_text.endswith("プロジェクト"))
【実行結果】 --- not endswith True False
上記のようにnotを使用することで判定結果が反転します。
まとめ
Pythonで、文字列の中に特定の文字列が含まれているかを判定する方法を解説しました。
文字列に指定した特定の文字列が含まれているかを判定する場合のin演算子やnot in演算子、文字列が特定の文字列で始まるか、終わるかを判定したい場合のstartswithメソッドやendswithメソッドの使い方を紹介しています。
プログラミングでは文字列に特定の文字が含まれているか判定し、処理を分岐するといったことがよくありますので、使い方を覚えてもらえたらなと思います。
上記で紹介しているソースコードについてはgithubにて公開しています。参考にしていただければと思います。