546
微信
正则表达式规范__附录_SQL_大数据计算服务-阿里云
ODPS SQL中的正则表达式采用的是PCRE的规范,匹配时是按字符进行,支持的元字符如下:
元字符 说明
^ 行首
$ 行尾
. 任意字符
* 匹配零次或多次
+ 匹配1次或多次
? 匹配零次或1次
? 匹配修饰符,当该字符紧跟在任何一个其他限制符 (* ,+, ?, {n}, {n,}, {n,m})后面时,匹配模式是非贪 婪的。
非贪婪模式尽可能少的匹配所搜索的字符串, 而默认的贪婪模式则尽可能多的匹配所搜索的字符串。
A|B A或B
(abc)* 匹配abc序列零次或多次
{n}或{m,n} 匹配的次数
[ab] 匹配括号中的任一字符,例中模式匹配a或b
[a-d] 匹配a,b,c,d任一字符
[^ab] ^表示非,匹配任一非a非 b的字符
[::] 见下表POSIX字符组
转义符
n n为数字1-9,后向引用
d 数字
D 非数字
POSIX字符组
POSIX字符组 说明 范围
[[:alnum:]] 字母字符和数字字符 [a-zA-Z0-9]
[[:alpha:]] 字母 [a-zA-Z]
[[:ascii:]] ASCII字符 [x00-x7F]
[[:blank:]] 空格字符和制表符 [ t]
[[:cntrl:]] 控制字符 [x00-x1Fx7F]
[[:digit:]] 数字字符 [0-9]
[[:graph:]] 空白字符之外的字符 [x21-x7E]
[[:lower:]] 小写字母字符 [a-z]
[[:print:]] [:graph:]和空白字符 [x20-x7E]
[[:punct:]] 标点符号 [][!”#$%&’()*+,./:;<=>? @^_`{|}~-]
[[:space:]] 空白字符 [ trnvf]
[[:upper:]] 大写字母字符 [A-Z]
[[:xdigit:]] 十六进制字符 [A-Fa-f0-9]
由于系统采用反斜线””作为转义符,因此正则表达式的模式中出现的””都要进行二次转义。如正则表达式要匹配字符串”a+b”, 其中”+”是正则中的一个特殊字符,因此要用转义的方式表达,在正则引擎中的表达方式是”a+b”,由于系统还要解释一层转义, 因此能够匹配该字符串的表达式是”a\+b”。例如,假设存在表test_dual,
select 'a+b' rlike 'a\+b' from test_dual;
+------+
| _c1 |
+------+
| true |
+------+
极端的情况,如果在要匹配字符””, 由于在正则引擎中””是一个特殊字符,因此要表示为””,而系统还要对表达式进行一次转义,因此写成”\”
select 'a\b', 'a\b' rlike 'a\\b' from test_dual;
+-----+------+
| _c0 | _c1 |
+-----+------+
| ab | true |
+-----+------+
备注:
- 在ODPS SQL中写”ab”, 而在输出结果中显示’ab’,同样是因为ODPS会对表达式进行转义。
如果字符串中有制表符TAB, 系统在读入’t’这两个字符的时候,即已经将其存为一个字符,因此在正则的模式中也是一个普通的字符。
select 'atb', 'atb' rlike 'atb' from test_dual;
+---------+------+
| _c0 | _c1 |
+---------+------+
| a b | true |
+---------+------+
最后更新:2016-05-06 10:43:07
上一篇:
LIKE字符匹配__附录_SQL_大数据计算服务-阿里云
下一篇:
保留字__附录_SQL_大数据计算服务-阿里云
态势感知9月功能更新__产品升级更新_态势感知-阿里云
获取域名日志__JAVA SDK_SDK 手册_CDN-阿里云
大数据计算服务MaxCompute(原名ODPS)服务协议__相关协议_平台介绍_数加平台介绍-阿里云
防火墙状态及解决方案__产品常见问题_服务器安全(安骑士)-阿里云
C SDK开发包__历史版本SDK下载_SDK 参考_对象存储 OSS-阿里云
申请物理专线接入__高速通道相关接口_API 参考_云服务器 ECS-阿里云
消费消息示例代码__Java SDK_SDK使用手册_消息服务-阿里云
CreateRules__转发规则相关API_API 参考_负载均衡-阿里云
图片鉴黄异步检测结果查询接口__智能图片鉴黄API_内容检测API文档_阿里绿网-阿里云
Tunnel命令操作__常用命令_基本介绍_大数据计算服务-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云