Pythonで文字列を検索する(含むか・位置取得・カウント)
Pythonで文字列中から文字列を検索する方法について解説します。
特定の文字列を含むかを判定する(in)
文字列の中に、特定の文字列が含まれているかどうかを調べるには、in
演算子を使います。指定の文字列が含まれていればTrue
、含まれていなければFalse
を返します。
not in
演算子を使えば、指定の文字列が含まれていない場合にTrue
、含まれている場合にFalse
を返します。
# 文字列中に特定の文字列が含まれているかを判定する
string = "これは文字列のサンプルです"
print("文字列" in string)
# True
print("もじれつ" in string)
# False
# not演算子で否定形を利用できる
print("文字列" not in string)
# False
print("もじれつ" not in string)
# True
特定の文字列の位置(インデックス)を取得する(find、rfind)
文字列の中で、特定の文字列の位置を取得するには、文字列str
型のfind()
メソッドとrfind()
メソッドを使用します。
第一引数に検索したい文字列、第二引数に検索開始位置、第三引数に検索終了位置を指定できます。find()
メソッドは文字列の先頭から、rfind()
メソッドは文字列の末尾から順に検索をします。第一引数以外はオプションです。
検索した文字列が見つからなければ、-1
を返します。
# 特定の文字列の位置を取得する
string = "これは文字列を検索するための文字列のサンプルです"
print(string.find("文字列"))
# 3
# 後ろから検索すると二つ目の文字列の位置が取得できる
print(string.rfind("文字列"))
# 14
# 検索開始位置と終了位置を指定する
print(string.find("文字列", 5, len(string)))
# 14
# 文字列が見つからなければ-1を返す
print(string.find("もじれつ"))
# 0
特定の文字列が文字列中に何個含まれるかをカウントする(count)
文字列中に特定の文字列が含まれている個数をカウントするには、文字列str
型のcount()
メソッドを使います。find()
メソッドなどと同様に、第一引数にカウントしたい文字列、第二引数と第三引数に検索開始位置と終了位置を指定できます。
# 特定の文字列の個数をカウントする
string = "これは文字列を検索するための文字列のサンプルです"
print(string.count("文字列"))
# 2
# 検索開始位置と終了位置を指定する
print(string.count("文字列", 5, len(string)))
# 1
# 文字列が見つからなければ-1を返す
print(string.count("もじれつ"))
# 0