正则表达式不会在谷歌分析该字符串匹配
问题描述:
我有这样的正则表达式:正则表达式不会在谷歌分析该字符串匹配
^(.*?(\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?
答
我只是需要正则表达式,应该匹配url包含
/luxury/property
并以#contact-broker-msg
结尾。
谷歌分析RE2模式不需要全字符串匹配,即返回部分匹配。所以,你不必将整个字符串与你的模式相匹配。
另一点是,您不必使用RE2模式转义/
,因为不使用正则表达式分隔符。
所有你需要的是
/luxury/property/.*#contact-broker-msg$
详细
-
/luxury/property/
- 一个字符串/luxury/property/
-
.*
- 比换行字符等 -
#contact-broker-msg
任何0+字符 - 一个字符串#contact-broker-msg
-
$
- 字符串的结尾。
正则表达式是一种痛苦,并且有很多正则表达式“引擎”。所以,当你在任何给定的客户端使用正则表达式时,你都可以使用任何正则表达式引擎。这意味着各种语法都可以工作,并且在任何给定的引擎中都不起作用,正则表达式教程网站通常很擅长指出这些问题。调试正则表达式是普遍的。从你知道工作的一小部分开始,然后构建,直到你找到冒犯的语法 - 然后谷歌它并找出为什么该语法不起作用。 – aaaaaa
你只需要['/luxury/property/.*#contact-broker-msg$'](https://regex101.com/r/Jdd4vK/2) –