高校化学2914654 views
雑学1472774 views
ヒストリア285028 views
英語608783 views
小学算数1196005 views
教育149005 views
LaTeX957931 views
りんご195339 views
Computer365661 views
中学理科1627080 views
Help
Tools

English

Python の re.findall を使うときは探したい単語を re.escape しておく

ドットのある単語を正規表現で見つける、またはカウントする場合を考えます。

import re

text = "config.txt, configXtxt, config txt"

without_escape = re.findall("config.txt", text)

print(without_escape)
# ['config.txt', 'configXtxt', 'config txt']

with_escape = re.findall(re.escape("config.txt"), text)

print(with_escape)
# ['config.txt']

最初の例からわかるように、探したい単語をそのまま入れてしまうと予期しない結果が返ります。re.findall で単語をカウントする場合は、探したい単語を re.escape しておくといいですね。