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}'
^ 文本的开始
$ 文本的末尾
[[:<:]] 词的开始
[[:>:]] 词的结尾