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

时间:2017-08-23 20:16:17

标签: regex wordpress

我知道已经提出了几个类似的问题。但无法用正则表达式解决这个问题。

我有句话

  

Lorem Ipsum是http://stack.comhttp://stack.com/wp-admin文字   印刷和排版行业。

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

我尝试了一些正则表达式,但它没有用。

^(?!stack.com$).*

1 个答案:

答案 0 :(得分:1)

^(?!stack.com$).*正则表达式匹配任何不以stack.com开头的字符串(即使是空字符串)。

要匹配stack.com但不匹配stack.com/wp-admin,您需要一个负面的预测:

/stack\.com(?!\/wp-admin)/
           ^^^^^^^^^^^^^

或者更好,使用单词边界仅匹配整个单词:

/\bstack\.com\b(?!\/wp-admin)/

请参阅regex demo

<强>详情:

  • \b - 领先的单词边界
  • stack\.com - 文字字符串stack.com(必须转义一个点)
  • \b - 尾随字边界
  • (?!\/wp-admin) - 如果当前位置右侧有/wp-admin,则会导致匹配失败的否定前瞻。