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)
您可以为您的模式添加单词边界锚点\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)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |