6

我有 2 个登陆页面:

/aa/index.php/aa/index/[sessionID]/alpha
/bb/index.php/bb/index/[sessionID]/bravo

由于 sessionID 是唯一的,因此每个登录页面都将作为不同的页面进行跟踪。因此,我需要一个过滤器来删除 sessionID。这些是我要跟踪的:

/aa/index.php/aa/index/alpha
/bb/index.php/bb/index/bravo

我在请求 URI 上创建了搜索和替换自定义过滤器:

Search String: /(aa|bb)/index\.php/(aa|bb)/index/(.*)
Replace String: /$1/index.php/$2/index/$3

但是/$1/index.php/$2/index/$3第二天我在仪表板上得到了报告。所以我尝试/\1/index.php/\2/index/\3了,但我得到了非常奇怪的结果,//aa/index.php/aa/index/alpha/index.php/aa/index/aa

有谁知道如何引用替换字符串中的分组模式?

我的解决方案: 我设法使用高级过滤器解决了它。我的解决方案:

Field A => Request URI: /(aa|bb)/index\.php/(aa|bb)/index/(.*)/(.*) 
Field B => - 
Output to => Request URI: /$A1/index.php/$A2/index/$A4
4

1 回答 1

1

我没有使用 Google Analytics 正则表达式引擎,但在我看来,\1它引用了整个匹配(在其他正则表达式实现中称为\0),而\2是第一组,\3是第二组,依此类推。

但是,您最初的正则表达式看起来不完整——我认为它应该如下所示:

Search String: /(aa|bb)/index\.php/(aa|bb)/index(/.*)/(alpha|bravo)
Replace String: /\2/index.php/\3/index/\5

(请注意,我不确定?此正则表达式实现中是否支持作为非贪婪修饰符,但如果支持,则如果您更改/.*为,上述搜索字符串模式可能会运行得更快一些/.*?。)

于 2012-12-07T00:04:57.323 回答