[英]re.search with multiple matched keyword
我在下面的代碼中找到字符串中的match關鍵字。 我的問題是如何在“查找”中包含多個關鍵字? 我應該使用數組之類的東西。
處理我們想要搜索的多個關鍵字的最佳方法是什么。 假設所有關鍵字必須匹配,則結果為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")
為了使兩者匹配,您要么需要兩個正則表達式,要么需要指定所有順序:
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").
您可以使用循環來匹配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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.