2017-08-25 175 views
0

我需要在Google Analytics(分析)中的网址中提取具有特定数字和字符串的链接,因此我设置了一个过滤器。正则表达式来匹配一个url内的字符串

这是我输入网址:http://website.com/content/123/12/1234?utm_source=ABC&utm_campaign=ThisIsWhatINeed

在这个环节,我需要的正则表达式匹配/内容/ 123/12/1234(或XXX/XX/XXXX格式的任何数字),并匹配确切的字符串ThisIsWININeed

我有正则表达式\/content\/\d+\/\d+\/\d+匹配数字部分/content/123/12/1234,并且这工作正常。但我不知道如何也匹配ThisIsWhatINeed。我试过\/content\/\d+\/\d+\/\d+ThisIsWhatINeed,但一些关键部分不见了。

我一直在使用正则表达式测试程序,它说所有匹配,但最后我得到消息'全局模式标志g修饰符:全球。所有比赛(第一场比赛后不返回)'

我会承认我对于正则表达式很陌生,我只是在学习所有的令牌。

PS - 我知道我可以在GA等手段拉出来活动 - 我有需要建立这种过滤器

+0

不要盲目测试正则表达式测试站点。在GA(RE2)正则表达式中,你不需要转义'/',例如你也可能只需要捕获组。试试['(/content/[0-9]+/[0-9]+/[0-9]+).*utm_campaign=([ ^&]*)'](https://regex101.com/ r/Pcm0jy/2)。 –

回答

-1

如果你想整个字符串匹配特定的原因:

要匹配/123/12/1234部分可以使用字符类。 要匹配更通用的链接,您可以将http://website.com/仅更换为.*? 要在广告系列属性后匹配您的字符串,您可以使用否定字符类,在字符类中标记为bei ^。这意味着,模式可以匹配每个字符,只要它不是&符号。

http://website.com/content/[\d/]+.*?utm_campaign=[^&]*? 

为了解释全局修改: 通常你尝试匹配正则表达式的东西会返回在第一场比赛。因此,如果您尝试匹配多个链接,则第一场比赛会返回并停止您的请求。 设置全局标志时,模式将尽可能频繁匹配,并在没有匹配时返回。

希望这会有所帮助!

+0

谢谢,我感谢你的答案,你们都对一个无知的新手很友善! 这两个响应都给出。* utm_campaign =([^&] *以匹配链接的广告系列部分,但这是我需要匹配的特定广告系列,而不是与广告系列代码的任何链接。 我已编辑它到(\/content \/\ d + \/\ d + \/\ d +。* bananas),这似乎是在正则表达式测试程序中工作,但不在GA中。GA不会接受其他任何东西,或者当我试图拿逃脱出来(我可能刚刚删除他们不正确)。 – Derah