Regex 用正则表达式忽略一个单词

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(?!

我知道已经有人问过几个类似的问题。但无法用正则表达式解决此问题

我有这样的句子

Lorem Ipsum是 印刷和排版业

我想缓存单词“stack.com”,但不是stack.com/wp admin

我试过几次正则表达式,但都不起作用

^(?!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$”-特别注意结尾的空格字符。@blauerschluessel我想OP想在stack.com上的
中匹配
stack.com
,您可以了解更多…
。因此,具有前瞻性的单词边界看起来是可行的。确实如此。“\bstack\.com\b”-似乎是正确的-解决了上述问题。@blauerschluessel如果在
com
后加空格,则需要在
com
后加空格,并且需要在单词边界后加字符。不确定这里需要什么。@anubhava那么,如果
stack.com
后面跟一个逗号,它将不会匹配。那么可能:
\bstack\.com(?![/?])
/\bstack\.com\b(?!\/wp-admin)/