如何在Python中前后跟空格的文件中搜索单词?

Ave*_*nus -1 python regex search python-3.x

我想逐行搜索一个特定单词的文件,但我想确保这个特定的单词前面跟着一个空格.

我知道我必须使用正则表达式来做到这一点.我一直在阅读这本指南,但令我感到困惑的是如何在同一个声明中同时应用前瞻和后瞻.

我怎样才能做到这一点?

counter = 0
out = open('out.txt', 'w')
with open(original_db, 'r') as db:
    for line in db:
        if re.search(word, line, re.IGNORECASE):
            counter += 1
            out.write(line)
print("Entries found for word: " + str(counter))
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

您可以为您的模式添加单词边界锚点\b:

if re.search('\b{}\b'.format(re.escape(word)), line, re.IGNORECASE):
Run Code Online (Sandbox Code Playgroud)

这些仅在单词字符(az,0-9或_字符)前面或后面跟着另一个非单词字符时匹配.这比空白更广泛; 标点符号前面或后面的单词也有效.

如果只能匹配以空格分隔的单词,则不要使用正则表达式; 只是拆分空白:

if word in line.lower().split():
Run Code Online (Sandbox Code Playgroud)