Python - 文字列を検索する

任意の文字列を含むか判定: in 演算子

in 演算子は、文字列の中に任意の文字列が含まれているか判定するために使用します。含まれている場合は True、含まれていない場合は False を返します。

in 演算子は大文字・小文字は区別されます。また、複数の文字列が含まれているかは andor を使って判定できます。

print("G" in "Google")
# True

print("y" in "Yahoo!")
# False

print("G" in "Google" and "g" in "Google")
# True
任意の文字列を含むか判定: in 演算子

in 演算子は、文字列だけではなくリストやタプル、辞書に対しても使用可能です。

任意の文字列の位置を取得: find(), rfind()

find() 関数は、文字列中の任意の文字列の位置を取得できます。文字列が含まれていない場合は -1 が返されます。

print("Google".find("G"))
# 0

print("Google".find("g"))
# 3

print("Google".find("y"))
# -1
任意の文字列の位置を取得: find()

取得する文字列の位置は 0 始まりです。各文字と位置の対応関係は以下の通りです。

# Google
# 012345
任意の文字列の位置を取得: find()

検索する文字列が複数存在した場合、返されるのは最初の文字列の位置のみです。

print("Google".find("o"))
# 1
任意の文字列の位置を取得: find()

rfind() 関数は、文字列を後ろから(右側から)検索して位置を返します。

print("Google".rfind("o"))
# 2
任意の文字列の位置を取得: rfind()

任意の文字列の個数をカウント: count()

count() 関数は、文字列中に任意の文字列が何個含まれているかをカウントします。

print("Google".count("o"))
# 2

print("Google".count("y"))
# 0
任意の文字列の位置を取得: count()

任意の文字列の位置を正規表現で取得: re.search()

re.search() 関数は、正規表現で特定の文字列を含むか判定します。正規表現を使用するためには標準ライブラリの re モジュールを import します。

import re

print(re.search("G", "Google"))
# <re.Match object; span=(0, 1), match='G'>

print(re.search("y", "Google"))
# None
任意の文字列の位置を取得: re.search()

正規表現ですべての結果を取得: re.findall()

re.findall() 関数は、正規表現でマッチするすべての部分を文字列のリストとして返します。

import re

print(re.findall("o", "Google"))
# ['o', 'o']
正規表現ですべての結果を取得: re.findall()

関連記事