Pythonで文字列を検索する(含むか・位置取得・カウント)

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