Regex 用正则表达式忽略一个单词
我知道已经有人问过几个类似的问题。但无法用正则表达式解决此问题 我有这样的句子 Lorem Ipsum是 印刷和排版业 我想缓存单词“stack.com”,但不是stack.com/wp admin 我试过几次正则表达式,但都不起作用Regex 用正则表达式忽略一个单词,regex,wordpress,Regex,Wordpress,我知道已经有人问过几个类似的问题。但无法用正则表达式解决此问题 我有这样的句子 Lorem Ipsum是 印刷和排版业 我想缓存单词“stack.com”,但不是stack.com/wp admin 我试过几次正则表达式,但都不起作用 ^(?!stack.com$).* ^(?!stack.com$).*正则表达式匹配任何不以stack.com开头的字符串(即使是空字符串) 要匹配stack.com,但不在stack.com/wp admin内,您需要一个负前瞻: /stack\.com(?!
^(?!stack.com$).*
^(?!stack.com$).*
正则表达式匹配任何不以stack.com
开头的字符串(即使是空字符串)
要匹配stack.com
,但不在stack.com/wp admin
内,您需要一个负前瞻:
/stack\.com(?!\/wp-admin)/
^^^^^^^^^^^^^
或者更好,让单词边界只匹配整个单词:
见
详细信息:
-前导词边界\b
-文本字符串stack\.com
(必须转义一个点)stack.com
-尾随词边界\b
-如果当前位置右侧立即有(?!\/wp admin)
,则会导致匹配失败的负面前瞻/wp admin
中匹配stack.com
,您可以了解更多…
。因此,具有前瞻性的单词边界看起来是可行的。确实如此。“\bstack\.com\b”-似乎是正确的-解决了上述问题。@blauerschluessel如果在com
后加空格,则需要在com
后加空格,并且需要在单词边界后加字符。不确定这里需要什么。@anubhava那么,如果stack.com
后面跟一个逗号,它将不会匹配。那么可能:\bstack\.com(?![/?])
/\bstack\.com\b(?!\/wp-admin)/