コンテンツにスキップ

Python3で文字列が含まれているかを確認する方法

CodeMDD.io

Python 3で文字列が他の文字列を含んでいるかを確認する方法

プログラミングに初めて取り組む方やPython以外のプログラミング言語から来た方々は、Pythonで文字列が他の文字列を含んでいるかを確認する最善の方法を探しているかもしれません。

このチュートリアルでは、Pythonicなアプローチ、つまりメンバーシップ演算子 inを使用して、このタスクに取り組みます。さらに、関連するが異なる使用例に対して適切な文字列メソッドを識別する方法も学びます。

最後に、pandasの列内の部分文字列を検索する方法も学びます。CSVファイルからデータを検索する必要がある場合に役立ちます。次のセクションで学ぶアプローチを使用することもできますが、表形式のデータを扱う場合は、データをpandasのDataFrameに読み込んで部分文字列を検索する方がベストです。

Pythonの文字列が他の文字列を含んでいるかを確認する方法

Python

>>> raw_file_content = """Hi there and welcome.
... This is a special hidden file with a SECRET secret.
... I don't want to tell you The Secret,
... but I do want to secretly tell you that I have one."""
>>> "secret" in raw_file_content
True

inメンバーシップ演算子は、文字列内に部分文字列が存在するかどうかを素早く読みやすい方法で確認することができます。このコード行はほとんど英語のように読めることに気づくかもしれません。

Python

>>> "secret" not in raw_file_content
False

部分文字列 "secret"raw_file_content 内に存在するため、not in演算子はFalseを返します。

  • 部分文字列が見つかった場合はTrue
  • 部分文字列が見つからなかった場合はFalse

Python

>>> if "secret" in raw_file_content:
... print("Found!")
...
Found!

このコードスニペットでは、メンバーシップ演算子を使用して"secret"raw_file_contentの部分文字列かどうかを確認しています。もし部分文字列である場合は、ターミナルにメッセージを出力します。

次のセクションでは、大文字と小文字を区別しない応用的なチェック方法を学びます。

大文字と小文字を区別せずにPythonの文字列が他の文字列を含んでいるかを確認する方法

文字列内の部分文字列を検索する際に、大文字と小文字を区別せずにマッチングを行いたい場合もあります。このような場合には、文字列メソッドの一つであるlower()を使用します。このメソッドを使用すると、文字列をすべて小文字に変換することができます。

Python

>>> raw_file_content = """Hi there and welcome.
... This is a special hidden file with a SECRET secret.
... I don't want to tell you The Secret,
... but I do want to secretly tell you that I have one."""
>>> "secret" in raw_file_content.lower()
True

このコードでは、lower()メソッドを使用してraw_file_contentをすべて小文字に変換しています。その後、変換された文字列内で"secret"が部分文字列として存在するかどうかを確認しています。大文字と小文字を区別せずに部分文字列を検索できることがわかります。

この方法を使って、ユーザーの入力を処理する場合や、大文字と小文字を区別せずに文字列を検索する必要がある場合に便利です。