我不是交易程序员,但我需要使用正则表达式在Google跟踪代码管理器中创建规则。我的目标是查看URL并在URL中找到两个单独的组匹配。这是一个示例网址
http://123.website.com/?&guid=blahblahblah&page=something&type=abc&adv=abc1234&site={siteID}
我最初有这个正则表达式,如果不是"& guid = blahblahblah& page = something&"在两组之间。如何在一个表达式中检查这两个组?
(http:\/\/)(([0-9])|([0-9][0-9])|([0-9][0-9][0-9]))\.website\.com\?(type\=abc)
奖励:如何检查https以及http?
THX!
答案 0 :(得分:0)
它实际上比你想象的容易:
/https?:\/\/([\d]{1,4})\.website\.com\/.*?&type=(.*?)&.*?/
答案 1 :(得分:-1)
在您对此答案的第一个版本发表评论后,我在 Google跟踪代码管理器的第Tags, Rules, Macros, and the Data Layer页上阅读了一些关于规则的内容。
显然,如果网址
,您需要一个返回 true 的规则http://
或https://
,.website.com/
,type=abc
。我无法对此进行测试,但以下规则应该有效:
{{url}} matches RegEx https?://\d{1,3}\.website\.com/.*type=abc.*adv=.*
Google跟踪代码管理器的正则表达式引擎希望支持来自Perl正则表达式语言集的那些基本正则表达式。
说明:
http
是一个固定字符串,必须在开头的URL中存在。
Sam写道,s
之后的问号使得s
成为可选项。
://
也是一个固定字符串,必须在http
或https
之后存在于网址中。
\d{1,3}
匹配任何数字(0-9)至少一次,但不超过3次。因此它匹配0到999之间的数字。任何其他字符或更多数字都会导致规则的 false 。
\.website\.com/
也是一个固定的字符串,其中该点被解释为文字字符。
.*
匹配网址的任何字符的两倍或更多次。