mysql 中的正则表达式

  • Post author:
  • Post category:mysql

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

版权声明:本文为steelfrog原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。