正则表达式使用技巧

发布于:网站统计与分析 by:owen

24 Apr 2009

要想用好google analytics,正则表达式在GA中是必不可少的使用技巧。

GA官方博客中有一篇文章中就讲到了正则表达式使用的一些小贴士。我根据文章大意试着翻译一下。有翻译的不确切的地方,请查阅原文,谢谢!

什么是正则表达式,如何使用?

正则表达式是包含字符、数字和通配符的文字字符串,匹配一行或者多行文字字符。使用正则表达式的主要原因是正则表达式支持通配符匹配,使用一窜字符(进行匹配)即可获得许多符合一定条件的数值(以URL为例)。

以下是在Google Analytics中使用正则表达式的一些常见示例:

  1. 在定义一个目标或者渠道页的时候匹配多个页面
  2. 定义一个过滤器排除来自某个ip段的访问
  3. 定义复杂的高级群体数据筛选
  4. (如从热门内容报告中)包含或者排除多个(匹配一定条件)的URL
如从热门内容报告中查找URL中包含bbs的页面

如从热门内容报告中查找URL中包含bbs的页面

google Analytics 的官方帮助中有一些正则表达式使用的基本指南

技巧与窍门

下面的这些小技巧将帮助你把正则表达式运用自如。

1.失败是成功之母。写好正则表达式只有一条最佳捷径。你可以利用所有的测试工具,但最好的方法就是去犯错,重写重写再重写,直到你确信你写的正则表达式是正确的。因此,在Google Analytics的账户中建立一个测试用的配置文件是很有必要的。

在同一账户下,建立一个同一域名下的测试配置文件,专门用于测试各种试验

在同一账户下,建立一个同一域名下的测试配置文件,专门用于测试各种试验

2.简单至上。如果你需要写一个表达式用于匹配“新访者”,而在参数栏你需要填写的选项仅仅是从“新访者”,“回访者”中选择,那么仅仅写一个“新”到参数栏就足够了。

3.正则表达式往往贪得无厌。除非你做出特别的限定,否则正则表达式将匹配所有可能匹配的数据。比如你的表达式是“访者”,它将匹配“新访者”和“回访者”,毕竟,这2个词都包含有“访者”这个表达式。要防止正则表达式滥用,必须指定更明确的匹配条件。

4.过犹不及。(见技巧3)比如,许多人在创建IP地址过滤器的时候使用正则表达式。如果这个IP地址是6.255.255.255,他们创立的正则表达式可能是这样的: 6\.255\.255\.255 —但他们忘了,这条规则也匹配诸如26.255.255.255 这样的ip地址的。对于这种状况,你有必要使用一个强制起始符 ^6\.255\.255\.255。一个强制起始符(^)等于在声明”匹配到字段开头处”。

5.匹配所有条件.*:一些正则表达式的组合极其特别。最有用的正则表达式组合可能是一个点后面带着星号,并且用括号封装,像这样:(.*)。第一个点表示匹配所有单个字符。这是一个终极通配符。换言之,(.*) 符号将获得所有数据并且作为一个变量处理。在创立自定义过滤器的时候你将发现(.*)非常有用。

6.反斜杠的妙用。反斜杠\可能是在正则表达式中最常用的符号了。使用这个特殊符号将把它后面的字符作为常量处理。比如,在撰写正则表达式的时候,如果想匹配”www.mysite.com?pid=123“这个条件,除非使用反斜杠,否则你将遇到一个麻烦。问号是一个正则表达式(匹配该符号前的 0 个或 1 个项目),通过使用反斜杠,像这样写”www.mysite.com\?pid=123“,将使问号不再具有正则表达式的功能。如果你不确定某个符号是否是正则表达式,(而你又只想把它当作常量处理),那么尽管在这个符号前使用反斜杠好了,这将是有益无害的。

使用反斜杠把正则表达式变为常量

使用反斜杠把正则表达式变为常量

7.空格还是空格。在正则表达式中最常见的一个问题就是”我要如何在正则表达式中使用一个空格“。答案是空格就是空格,尽管使用就是。如果你在正则表达式中需要匹配”Google Analytics“这个短语,那么正则表达式还是这样的”Google Analytics”。

其他帮助资源

regular-expressions.info

RegEx Coach

可用于测试正则表达式的交互工具

作者:owen
原文链接:正则表达式使用技巧
欢迎转载,转载请注明出处

你可能感兴趣的文章

6 条回复 to 正则表达式使用技巧

Avatar

安踏

05月 30th, 2009 at 09:41

en 不错 谢谢学习了

Avatar

卢松松

07月 1st, 2009 at 20:55

天天都是听程序员说政策表达式。。。。

Avatar

Cresty

07月 15th, 2009 at 12:38

在Google Analytics中,空格除了直接空格外,还可以用\s表示,这样会更明确些。

Avatar

owen

07月 15th, 2009 at 13:16

受教了 :)

Avatar

dylanklc

07月 15th, 2009 at 16:58

装个linux/unix 天天用find grep 找东西
或者写爬别人网页的脚本 学REG ex最快了.
仅仅是个人体验……
ps:好奇心是灵长类动物的通病.

Avatar

francis

07月 23rd, 2009 at 04:58

一直在想为什么不出一个自动生成正则表达式的东西出来……

说点什么?给楼主一点鼓励!

文章分类

文章订阅