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 しておくといいですね。