我想跟踪Google Analytics中的子文件夹,这些子文件夹分为一到五个级别。
另外一个障碍是,子文件夹不会在100%的情况下拥有尾随斜杠,我需要跟踪它们的两种类型,有和没有尾随斜杠,仅基于子文件夹级别,也/ a-1 /和/ a-1,/ a-1 / b-2 /和/ a-1 / b-2等。
文件夹看起来像/ a-1 /和/ a-1,/ a-1 / b-2 /和/ a-1 / b-2,/ a-1 / b-2 / c-3 /和/ a-1 / b-2 / c-3,/ a-1 / b-2 / c-3 / d-4 /和/ a-1 / b-2 / c-3 / d-4,/ a -1 / b-2 / c-3 / d-4 / e-5 /和/ a-1 / b-2 / c-3 / d-4 / e-5,我需要跟踪/ a -1 /和/ a-1等。
我的想法是计算斜杠以获得子文件夹的级别,然后明确是否存在traling斜杠或不获取bot变体。根据这个匹配两个子文件夹的想法,/ a / b /和/ a / b将包含两个规则:
这一个(.*\/){3}\/$
应该匹配字符串,它有3个斜杠,最后是斜杠,
另一个(.*\/){2}[^\/]$
应该匹配字符串,它有2个斜杠并且最终没有斜线。
两条规则都不起作用,而不是单独使用,而不是与管道连接在一起,如(.*\/){3}\/$|(.*\/){2}[^\/]$
- 它们只匹配不期望的内容。
请指出解决方案,指向正确的方向。
答案 0 :(得分:2)
对我来说这成了一个真正的规则:我几乎没有因为找到问题的解决方案而感到恼怒,并在StackOverflow上发布了一个问题,直接发布后我自己找到答案:)
嗯,一起完成工作的正则表达式有两个:第一个用于定义嵌套级别,第二个用于排除嵌套级别更高的定义。
例如,我们想在第二个嵌套级别创建一个匹配子文件夹的过滤器,使用和不使用尾部斜杠。它们看起来像/ a-1 / b-2 /和/ a1 / b-2
(/[^\s]+){2}?$
(/[^\s]+){3}?$
为了使子文件夹统计信息始终易于使用,我们为每个过滤器组合创建了快捷方式。
完成 - 享受!