如何使用RegEx在。*之后直接以$结束字符串?

时间:2019-06-11 03:51:05

标签: regex google-analytics

我正在尝试报告一组捕获所有潜在URL参数的URL,但是在正确定义RegEx时遇到了问题。

我们有这个RegEx来捕获URL的一些变体,以将其输入到报告中,但是我需要能够以$结束字符串,但是当我这样做时,它不会显示任何结果。

RegEx:

/join/$|/join/\?product.*|/join/\.*

对于另一个帐户,我们仅使用以下概述的一种变体(有效):

^/join/$

我认为问题是在\?product.*之后,我没有结束字符串(甚至没有开始)。

到目前为止,我已经尝试过:^/join/$|(^[/join/\?product.*]$)|(^[/join/\.*]$),没有运气。

2 个答案:

答案 0 :(得分:0)

请使模式lazy$是正则表达式的特殊字符,因此需要对其进行转义。 (关于转义部分,谷歌分析可能会采用其他方法。)[]用于捕获某个范围内的a character,在尝试捕获我认为的组时也要小心。 / p>

  

\?product。*?\ $

答案 1 :(得分:0)

如果要从字面上匹配美元符号,则必须将其转义names(df)[-1] <- sub("^.(.*)$", "\\1", names(df)[-1]) df # country gdp pop #1 US 100 100 #2 Australia 50 50 ,否则将意味着定位字符串/行末的锚点。

此模式\$仅匹配^/join/$

在模式中,您使用一种替代方式,其中最后一部分/join/会与/join/\.*匹配,而且也会与/join/匹配,因为当您转义该点时,您将在字面上将其与{{1} }量词重复0+次。

也许您正在寻找:

/join/.....

这将匹配*,后跟将匹配?product的可选部分^/join/(?:\?product.*\$)?$ ,然后是任何字符0+次并以/join/结尾。

Regex demo