正则表达式
最后更新于:2016-11-14 15:07:55
神策分析各项功能均支持正则表达式,用户可以利用正则表达式进行灵活的属性筛选。
正则表达式是对字符串进行操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
例子
神策官网设有 文档 频道,该频道下的页面地址示例如下:
- 介绍页面:https://www.sensorsdata.cn/manual/
- 使用文档:https://www.sensorsdata.cn/manual/use_guide.html
- 事件分析:https://www.sensorsdata.cn/manual/event_ana.html
可以看到,文档频道下的页面地址有个规律,即均以https://www.sensorsdata.cn/manual/ 开头。
所以,当我们想要看文档频道下的整体页面浏览数时,可用如下用正则表达式进行匹配:
/manual/.*
正则表达式语法
上述表达式中的.
和*
是正则表达式中所使用的特殊字符中的两个。其他正则表达式字符释义如下:
通配符
字符 | 含义 | 示例 |
---|---|---|
. |
匹配任何单个字符 | sens.ors 与 sensoors 、sens8ors 匹配 |
* |
匹配0个或多个先前项 | 默认的先前项是前一个字符。sens*ors 与 senors 、senssors 匹配 |
+ |
与星号的用法一样,只不过加号至少必须匹配一个先前项 | sens+ors 与 senssors 匹配,但是与 senors 不匹配 |
? |
匹配0个或1个先前项 | labou?r 与 labor 和 labour 匹配 |
∣ |
执行“或”匹配 | a∣b 匹配 a 或 b |
定位符
字符 | 含义 | 示例 |
---|---|---|
^ |
要求您的数据位于字段开头 | ^sensors 与 sensors 匹配,与 mysensors 不匹配 |
$ |
要求您的数据位于字段末尾 | sensors$ 与 sensors 匹配,与 sensorscan 不匹配 |
分组
字符 | 含义 | 示例 |
---|---|---|
() |
使用圆括号创建项,而不使用默认项 | Thank(s∣you) 与 Thanks 和 Thankyou 都匹配 |
[] |
使用方括号创建要匹配的项列表 | [abc] 匹配a 、b 和 c |
- |
使用方括号和短划线来扩展您的列表 | [A-Z] 表示英语大写字母的列表 |
转义
字符 | 含义 | 示例 |
---|---|---|
\ |
将正则表达式字符转换为普通字符 | sensorsdata\.cn 这一表达式中的. 不再是通配符 |