参考原文: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的行结束符 |