我知道有幾個類似的問題已經提出。但不能用正則表達式解決這個問題。用正則表達式忽略一個單詞
我有一個像
Lorem存有句話是http://stack.com/wp-admin 印刷排版行業http://stack.com文本。
我想緩存單詞「stack.com」但不stack.com/wp-admin
我已經試過幾個正則表達式,但它不工作。
^(?!stack.com$).*
我知道有幾個類似的問題已經提出。但不能用正則表達式解決這個問題。用正則表達式忽略一個單詞
我有一個像
Lorem存有句話是http://stack.com/wp-admin 印刷排版行業http://stack.com文本。
我想緩存單詞「stack.com」但不stack.com/wp-admin
我已經試過幾個正則表達式,但它不工作。
^(?!stack.com$).*
的^(?!stack.com$).*
正則表達式不與stack.com
啓動任何字符串(即使是空的)相匹配。
要匹配stack.com
但裏面stack.com/wp-admin
,你需要一個負前瞻:
/stack\.com(?!\/wp-admin)/
^^^^^^^^^^^^^
或更好,具有字邊界僅匹配整個話:
/\bstack\.com\b(?!\/wp-admin)/
詳情:
\b
- 領先字邊界stack\.com
- 文字字符串stack.com
(點必須進行轉義)\b
- 拖字邊界(?!\/wp-admin)
- 失敗的負前瞻如果立即在當前位置的右側存在/wp-admin
,則匹配。我不認爲人們需要前瞻。鑑於上面的問題可以簡單地檢查:「stack \ .com $」 - 特別注意結尾空格字符。 – blauerschluessel
@blauerschluessel我認爲OP想在'stack.com上匹配'stack.com',你可以瞭解更多......'。所以,帶有前瞻的單詞邊界看起來是可行的。 –
當然,它確實如此。 – blauerschluessel
@anubhava然後,如果'stack.com'後跟一個逗號,它將不會匹配。 –
好吧然後可能:'\ bstack \ .com(?![/?])' – anubhava