MaxCompute 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字符组 | 说明 | 范围 |
| [[:alnum:]] | 字母字符和数字字符 | [a-zA-Z0-9] |
| [[:alpha:]] | 字母 | [a-zA-Z] |
| [[:ascii:]] | ASCII字符 | [\x00-\x7F] |
| [[:blank:]] | 空格字符和制表符 | [ \t] |
| [[:cntrl:]] | 控制字符 | [\x00-\x1F\x7F] |
| [[:digit:]] | 数字字符 | [0-9] |
| [[:graph:]] | 空白字符之外的字符 | [\x21-\x7E] |
| [[:lower:]] | 小写字母字符 | [a-z] |
| [[:print:]] | [:graph:]和空白字符 | [\x20-\x7E] |
| [[:punct:]] | 标点符号 | [][!”#$%&’()*+,./:;<=>? @\^_`{|}~-] |
| [[:space:]] | 空白字符 | [ \t\r\n\v\f] |
| [[:upper:]] | 大写字母字符 | [A-Z] |
| [[:xdigit:]] | 十六进制字符 | [A-Fa-f0-9] |
注意:
在 MaxCompute SQL 中写a\\b, 而在输出结果中显示a\b,同样是因为 MaxCompute 会对表达式进行转义。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。