Posted at

【python】re.match より re.search を使おう

More than 1 year has passed since last update.


TL;DR

re.match は文字列の先頭からしかマッチしない。


  • 部分一致したい -> re.search

  • 全体一致したい -> re.fullmatch

fullmatch が全体一致なので match は部分一致かな?と適当に使うと痛い目を見るので注意が必要です。


python の正規表現

公式: https://docs.python.jp/3/library/re.html#re.search


  • re.search: 文字列の部分のマッチ

  • re.match: 文字列の先頭からのマッチ

  • re.fullmatch: 文字列の全体のマッチ

となっています。

具体例としては以下のようになります。

text
aaa
aaaB
Baaa
BBB

re.search(r'aaa', text)



re.match(r'aaa', text)



re.fullmatch(r'aaa', text)



文字列の最初からのみの一致って私には少し特殊に思えるのですがどうなのでしょうか。