gpt4 book ai didi

Python 正则表达式多重搜索

转载 作者:太空狗 更新时间:2023-10-30 00:46:41 24 4
gpt4 key购买 nike

我需要在一个字符串中搜索多个词。

import re

words = [{'word':'test1', 'case':False}, {'word':'test2', 'case':False}]

status = "test1 test2"

for w in words:
if w['case']:
r = re.compile("\s#?%s" % w['word'], re.IGNORECASE|re.MULTILINE)
else:
r = re.compile("\s#?%s" % w['word'], re.MULTILINE)
if r.search(status):
print "Found word %s" % w['word']

出于某种原因,这只会找到“test2”而永远不会找到“test1”。为什么是这样?

我知道我可以使用 |分隔搜索,但可能有数百个单词,这就是我使用 for 循环的原因。

最佳答案

status 中的test1 之前没有空格,而您生成的正则表达式要求有一个空格。

您可以修改测试以匹配空格后或行首:

for w in words:
if w['case']:
r = re.compile("(^|\s)#?%s" % w['word'], re.IGNORECASE|re.MULTILINE)
else:
r = re.compile("(^|\s)#?%s" % w['word'], re.MULTILINE)
if r.search(status):
print "Found word %s" % w['word']

关于Python 正则表达式多重搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6163586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com