簡體   English   中英

使用多個匹配關鍵字進行重新搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM