【问题标题】:Regex doesn't match the string in Google Analytics正则表达式与 Google Analytics 中的字符串不匹配
【发布时间】:2017-10-20 14:46:36
【问题描述】:

我有一个这样的正则表达式:

^(.*?(\b\/luxury\/property\b)[^$]*)#contact-broker-msg$

这样匹配 url 字符串:

https://www.my-website.com/luxury/property/something#contact-broker-msg

但是当我尝试在 Google Analitics 中应用此正则表达式时,它会输出 suspicios 结果,就好像它与我的网站的网址不匹配一样。

我在这里测试了这个正则表达式:

https://regex101.com/r/Jdd4vK/1

它表明示例字符串与提供的正则表达式完全匹配。

基本上,我只需要匹配包含\/luxury\/property\ 并以#contact-broker-msg 结尾的url 的正则表达式。

那么,对于谁错了,我还是 Google,有什么想法吗?

【问题讨论】:

  • 正则表达式很痛苦,而且有很多正则表达式“引擎”。因此,当您在任何给定的客户端中使用正则表达式时,您将受到他们使用的任何正则表达式引擎的支配。这意味着各种语法在任何给定的引擎中都可以正常工作,而正则表达式教程网站通常很擅长指出这些。不过,调试正则表达式是通用的。从你知道有效的一小部分开始,然后构建,直到你找到有问题的语法 - 然后用谷歌搜索它并找出为什么该语法不起作用。

标签: regex google-analytics


【解决方案1】:

我只需要与包含/luxury/property 并以#contact-broker-msg 结尾的url 匹配的正则表达式。

Google Analytics RE2 模式不需要完整的字符串匹配,即也返回部分匹配。因此,您不必将整个字符串与您的模式匹配。

另一点是,您不必在 RE2 模式中转义 /,因为不使用正则表达式分隔符。

你只需要

/luxury/property/.*#contact-broker-msg$

请参阅regex demo

详情

  • /luxury/property/ - 文字字符串 /luxury/property/
  • .* - 除换行符以外的任何 0+ 个字符
  • #contact-broker-msg - 文字字符串 #contact-broker-msg
  • $ - 字符串结束。

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多