基本用法

MySQL之正则表达式

‘^’ / '$'从开头/结尾匹配符号

select code from bk_material where code regexp '^W$'; 检索以W开头以W结尾的数据,那么就是只含W的数据。

'.'匹配除\n以外的任一个字符

select code from bk_material where code regexp '^.W';匹配第二个字符是W的数据

'[…]'匹配括号里面包含的任一个字符的数据

select code from bk_material where code regexp '^[a-zA-Z]';匹配第一个字符是英文的数据

‘[^…]’ 匹配不包含括号里字符或模式的数据

select code from bk_material where code regexp '^.W';'匹配首字母不为W的字符串

'p1|p2|p3’匹配p1或者p2或者p3模式

select Name from bk_material where name regexp '^a|w|p';'匹配首字母是a,w,p的字符串

'{n}'连续匹配次数,{n,m}连续最少匹配n次,连续最多匹配m次

select 'boboeobo' regexp '(bo){2}';'连续两次匹配bo

select 'boboeobo' regexp '(bo){3,}';'连续最少匹配3次bo。

‘?’ 等价于 ‘?[0,1]’

‘*’ 等价于 ‘?[0,]’

‘+’ 等价于 ‘?[1,]’

[:class:]表

alnum:文字数字字符

alpha:文字字符

blank:空白字符

cntrl:控制字符

digit:数字字符

graph:图形字符

lower:小写文字字符

print:图形或空格字符

punct:标点字符

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

upper:大写文字字符

xdigit:十六进制数字字符

注意点:主要是中文,如果能确定字符串是中文,能不用就不用吧

1.特殊字符转义需要两个’\’,Mysql要一个,正则表达式要一个;
2.中文字符字符范围:[\u4e00-\u9fa5];
3.中文字符在Mysql语句中占3个字符:select Name from bk_material where name regexp '^...公';如果全是中文,代表第二个中文是公的字符串;
4.中文由于模糊查询大小写转换出现问题:select Name from bk_material where name regexp '^办|木|公';塑料都出来了。。。

相关文章:

  • 2021-11-07
  • 2021-05-23
猜你喜欢
  • 2021-05-28
  • 2021-08-26
  • 2021-07-11
相关资源
相似解决方案