下面有一个代码可以在字符串中找到一个匹配关键字。我的问题是如何在“查找”中包含多个关键字?我该用数组还是别的什么。
我们想要搜索的处理多个关键字的最佳方法是什么。假设所有关键字必须匹配,则结果为PASS。
试过这个。失败..。
(“bpython\b”,"\bgreat\b")?有什么想法吗?
import re
string = "python is great!"
find = ("\\bpython\\b")
if re.search(find, string):
print ("found")
else:
print ("not found")发布于 2016-01-08 08:53:24
要匹配这两者,您要么需要两个正则表达式,要么需要指定所有订单:
find = r'\bpython\b.*\bgreat\b|\bgreat\b.*\bpython\b|'关于更多关键字,我建议您在一个循环中使用多个正则表达式:
import re
string = "python is great!"
words=["python","is","great"]
all_found=True
for w in words:
if not re.search(r"\b"+w+r"\b", string):
all_found=False
break
if all_found:
print ("found all words")
else:
print ("at least one word missing").发布于 2016-01-08 08:56:03
您可以使用循环来匹配find中的所有单词。循环通过,当它找不到一个单词时,中断循环(并打印缺少的单词)。如果找到所有单词,请打印“找到所有子字符串”。
import re
string = r"python is great!"
find = [r'python',r'great']
for substring in find:
if not re.search(r'\b'+substring+r'\b', string):
print("'%s' not found" % substring)
break
else:
print ("all substrings are found")https://stackoverflow.com/questions/34672714
复制相似问题