【问题标题】:Regular Expression not containing a specific string不包含特定字符串的正则表达式
【发布时间】:2015-04-10 20:18:42
【问题描述】:

我正在尝试在 Google Analytics(分析)中构建基于事件跟踪的目标转化。我正在尝试构建一个匹配除这些字符串之外的所有事件标签的正则表达式:

https://play.google.com/store/apps/details?id=com.instagram.android https://itunes.apple.com/nl/app/instagram/id389801252?mt=8

我正在尝试这个:

.*((?!play\.google\.com).).*|.*((?!itunes\.apple\.com).).*

非常感谢!

【问题讨论】:

  • 也许你应该换个思路——寻找那些字符串,这样你就可以忽略它们,然后解析所有其余的。
  • @DavidGrinberg:这确实是最有效的方法。

标签: regex google-analytics regex-negation regex-lookarounds regex-greedy


【解决方案1】:

我建议你改变你的代码如下,

^(?!.*?(?:play\.google\.com|itunes\.apple\.com)).*

我假设您正在尝试仅针对 url 字符串检查上述字符串。

DEMO

【讨论】:

    【解决方案2】:

    您应该使用负前瞻来避免您无法捕捉到的行,在正则表达式的末尾添加一个组(或命名组)

    ^(?!https?:\/\/(?:play\.google|itunes.apple).com)(.+)
    

    Try it!

    命名组版本

    ^(?!https?:\/\/(?:play\.google|itunes.apple).com)(?<eventLabel>.+)
    

    Try it!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-17
      • 2017-10-02
      • 1970-01-01
      • 2011-07-22
      • 2012-05-11
      • 1970-01-01
      • 2011-06-27
      • 2011-12-09
      相关资源
      最近更新 更多