正则表达式不会在谷歌分析该字符串匹配

问题描述:

我有这样的正则表达式:正则表达式不会在谷歌分析该字符串匹配

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

匹配URL字符串是这样的:

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

但是当我尝试在应用此正则表达式谷歌分析它输出怀疑结果,好像它不匹配我的网站的网址。

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

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

而且这表明,例如字符串是正则表达式提供全场比赛。

基本上,我只是需要正则表达式,应该匹配url包含\/luxury\/property\和结尾#contact-broker-msg

那么,关于whos错误的任何想法,我还是Google?

+0

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

+0

你只需要['/luxury/property/.*#contact-broker-msg$'](https://regex101.com/r/Jdd4vK/2) –

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

谷歌分析RE2模式不需要全字符串匹配,即返回部分匹配。所以,你不必将整个字符串与你的模式相匹配。

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

所有你需要的是

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

regex demo

详细

  • /luxury/property/ - 一个字符串/luxury/property/
  • .* - 比换行字符等
  • #contact-broker-msg任何0+字符 - 一个字符串#contact-broker-msg
  • $ - 字符串的结尾。