mysql 正则

时间:2021-09-08 03:17:11

mysql 正则学习

基本字符匹配
select desk from dealer_info where desk regexp "82107777";

. 表示匹配任意一个字符
select name from dealer_info where name regexp "a.";

MySQL中的正则表达式匹配不区分大小写, 可以使用 binary来区分
select name from dealer_info where name regexp BINARY "a.";
select name from dealer_info where BINARY name regexp "a.";

or匹配:
SELECT * FROM `card` where json_str REGEXP BINARY "a|b"
[123]定义一组字符,意思是匹配1或2或3
^ 否定一个字符集合,将匹配除指定字符外的任何东西。[^123]将匹配除这些字符外的任何东西

匹配范围:
[0123456789] 或 [0-9] 将匹配数字0到9
[a-z] 匹配任意字母符号

alnum
文字数字字符

alpha
文字字符

blank
空白字符

cntrl
控制字符

digit
数字字符

graph
图形字符

lower
小写文字字符

print
图形或空格字符

punct
标点字符

space
空格、制表符、新行、和回车

upper
大写文字字符

xdigit
十六进制数字字符

元字符 说明
* 0个或多个匹配
+ 1个或多个匹配(等于 {1, })
? 0个或1个匹配(等于 {0, 1})
{n} 指定数目的匹配
{n, } 不少于指定数目的匹配
{n ,m} 匹配数目的范围(m不超过255)

匹配连在一直的4位数字:WHERE prod_name REGEXP '[[:digit:]]{4}'

^ 文本的开始
$ 文本的末尾
[[:<:]] 词的开始
[[:>:]] 词的结尾