1
如何匹配前面沒有@
符號的字符串?負面展望正則表達式
/([email protected])(somestring|someotherstring)/
不產生預期結果。在崇高的文本以下Sublime: Regular Expressions.cheatsheet
如何匹配前面沒有@
符號的字符串?負面展望正則表達式
/([email protected])(somestring|someotherstring)/
不產生預期結果。在崇高的文本以下Sublime: Regular Expressions.cheatsheet
正在測試這一點,你需要使用一個回顧後:
(?<[email protected])(somestring|someotherstring)
的([email protected])
先行將檢查以下符號不是@
。
一些more details:
回顧後具有同樣的效果[VS:如先行],但逆向運作。它告訴正則表達式引擎在字符串中暫時退後一步,以檢查lookbehind內部的文本是否可以在那裏匹配。
(?<!a)b
與前a
前b
相匹配,使用負後視。它不匹配cab
,但與bed
或debt
中的b
(和僅b
)匹配。負向lookbehind寫爲
(?<!text)
,使用感嘆號而不是等號。
救命恩,謝謝! – Adam
我有另一個類似的問題,我的正則表達式看起來像這樣的'^(\ s *)USE(\ [?)(?<![master | \ $])(。)+(\]?)' - 我應該發佈一個新的問題呢? – Adam
是的,這應該是一個新問題。我看到了太多的問題。不要忘記描述它有什麼問題,以及一些輸入樣本字符串和預期輸出。不要要求解釋正則表達式的含義。 –