参考原文:12.5.2 Regular Expressions
功能和操作
| 名称 | 描述 |
|---|
| NOT REGEXP | REGEXP的反义词 |
| REGEXP | 字符串是否匹配正则表达式, 这三个关键词是同一个意思 |
| REGEXP_LIKE() | 字符串是否匹配正则表达式 |
| RLIKE | 字符串是否匹配正则表达式 |
| REGEXP_INSTR() | 符合正则的子字符串的初始位置 |
| REGEXP_REPLACE() | 替换匹配正则的字符串 |
| REGEXP_SUBSTR() | 返回匹配正则的字符串 |
正则表达式语法
| 符号 | 匹配 | 实例 |
|---|
| ^ | 匹配字符串开头 | |
| $ | 匹配字符串结尾 | |
| . | 任意字符,除了回车\r和换行\n,如果指定多行,也能匹配。 | |
| […]匹配中括号中的 任意一个。 | |
| [a-z] | -表示范围 | |
| [^a-z] | ^表示不再这个范围内 | |
| 数量匹配 | |
| a{1,10} | 表示匹配长度在1到10 之间 | |
| a{3,} | 表示匹配长度大于等于3 | |
| a{,10} | 表示匹配长度在10之内 | |
| a{5} | 表示匹配长度是5个 | |
| a? | 表示匹配长度是1个或零个 | |
| a* | 表示匹配长度是0个或多个 | |
| a+ | 表示匹配长度是一个或者以上 | |
| a1 | b222 | 满足二者之一 | |
| 字符类 | [:character_class:] | |
| 字符类 | 含义 |
|---|
| alnum | 字母和数字 |
| alpha | 字母,类似\w+ |
| blank | 空格 |
| cntrl | Control characters |
| digit | 数字, 类似于\d+ |
| graph | Graphic characters |
| lower | 小写字母 |
| print | Graphic or space characters |
| punct | 标点符号 |
| space | 空格,tab, 回车,换行 |
| upper | 大写字母 |
| xdigit | 16进制的数字,包括0-9, a-f |
正则函数使用
基本使用
字符串 [NOT] REGEXP|RLIKE 正则表达式,返回0或者1
两个关键字,是REGEXP_LIKE()的别名,效果一样
REGEXP_LIKE(expr, pat[, match_type])
| 参数 | 含义 |
|---|
| expr | 需要匹配的字符串 |
| pat | 正则表达式 |
| match_type | 匹配类型 |
| c | 大小写区别 |
| i | 不区别大小写 |
| m | 多行匹配,识别行结束符, 可以在正则表达式中使用(?m) |
| n | (.)能匹配行结束符号 |
| u | 仅匹配Unix的行结束符 |