如何將這三個re.compile
加入統一的正則表達式中,然後將其用於負向預測?即如果字符串s
中沒有匹配,則:[做某事]。當加入多個re.compile時插入負面預測
regex_eur = re.compile(r"\b(Euro)\b|\b(EUR)\b|\b(\€)\b", re.I)
regex_gbp = re.compile(r"\b(Pound)\b|\b(GBP)\b|\b(\£)\b", re.I)
regex_jpy = re.compile(r"\b(Yen)\b|\b(JPY)\b", re.I)
我嘗試:
regex_all = re.compile(r"\b(?:%s)\b" % "|".join([regex_eur, regex_gbp, regex_jpy]))
if not re.search(regex_all, s):
#Do something
注意,這不使用負前瞻,只是if not
這似乎並沒有工作。如果這確實是正確的方法,我不確定如何將負向預測附加到.join
。
編輯:我客觀的澄清。
我想確保沒有任何正則表達式「關鍵字」在字符串中。即以下都不允許使用:「歐元」,「歐元」,「歐元」,「英鎊」,「英鎊」,「英鎊」等。
我已經決定了,因爲單詞邊界\b
是實施重要的是使用正則表達式。
我在這裏看不到任何背影。只有一個大的基於正則表達式的正則表達式應該適合你 – anubhava
關於術語:是不是隻是一個向前看的負面lookbehind? – anderas
@anderas對不起,也許我誤解了一個負面的後臺是什麼。我的目標只是確保沒有任何正則表達式「關鍵字」在字符串中。即以下都不允許使用:歐元,歐元,歐元,英鎊,英鎊,英鎊等。 – Winterflags