LaTeX957300 views
雑学1472593 views
高校日本史189857 views
ヒストリア284143 views
中学英語808712 views
Computer365120 views
小学算数1194618 views
中学理科1626207 views
教育148875 views
中学社会667106 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 しておくといいですね。