mysql正则表达式regexp使用详解
regexp ^??????????????? ???????? 匹配字符串的开始部分 $??????????????? ???????? 匹配字符串的结束部分 .???????????????? ???????? 匹配任何字符(包括回车和新行) a*????????????? ???????? 匹配0或多个a字符的任何序列 a+????????????? ???????? 匹
regexp
^??????????????? ???????? 匹配字符串的开始部分
$??????????????? ???????? 匹配字符串的结束部分
.???????????????? ???????? 匹配任何字符(包括回车和新行)
a*????????????? ???????? 匹配0或多个a字符的任何序列
a+????????????? ???????? 匹配1个或多个a字符的任何序列
a?????????????? ???????? 匹配0个或1个a字符
de|abc?????????????? 匹配序列de或abc
(abc)*??????????????? 匹配序列adc的0个或者多个实例
{n}、{m,n}??????? {n}或{m,n}符号提供了编写正则表达式的更通用方式,能够匹配模式的很多前述原子(或“部分”)。m和n均为整数。
a*????????????? 可被写为a{0,}
a+????????????? 可被写为a{1,}
a?????????????? 可被写为a{0,1}
[a-dX]???????????????? 匹配任何是a,b,c,d或者X的字符,两个其他字符之间的’-'字符构成一个范围
[^a-dX]?????????????? 匹配任何不是a,b,c,d或者X的字符,前面的字符’^'是否定的意思
[.characters.]? 在括号表达式中(使用[和]),匹配用于校对元素的字符序列,字符为单个字符或新行等字符名
mysql> SELECT ‘~’ REGEXP ‘[[.~.]]’; ?????????????????????????????????????????????????????? -> 1
mysql> SELECT ‘~’ REGEXP ‘[[.tilde.]]’; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -> 1
[=character_class=]
在括号表达式中(使用[和]),[=character_class=]表示等同类。它与具有相同校对值的所有字符匹配,包括它本身,
[[=a=]] ???????????? 等同于[a(+)],[a+],[a{1,}]
[:character_class:]
在括号表达式中(使用[和]),[:character_class:]表示与术语类的所有字符匹配的字符类。
标准的类名称是:
alnum?????? 文字数字字符
alpha??????? 文字字符
blank???????? 空白字符
cntrl ???????? 控制字符
digit????????? 数字字符
graph??????? 图形字符
lower??????? 小写文字字符
print ? ? ? ? ?图形或空格字符
punct??????? 标点字符
space??????? 空格、制表符、新行、和回车
upper??????? 大写文字字符
xdigit??????? 十六进制数字字符
[[:<:>:]]
这些标记表示word边界。它们分别与word的开始和结束匹配。word是一系列字字符,其前面和后面均没有字字符。字符是alnum类中的字母数字字符或下划线(_)。
mysql> select ‘fang shan zi’ regexp ‘[[:<:>:]]’;???????????? -> 1
mysql> select ‘fang shan zi’ regexp ‘[[:<:>:]]’;????????????? -> 1
mysql> select ‘fang shans zi’ regexp ‘[[:<:>:]]’;?????????? -> 0
正则表达式使用特殊字符,应在其前面加上2个反斜杠’\'字符
mysql> SELECT ’1+2′ REGEXP ’1+2′;?????????????????????? -> 0
mysql> SELECT ’1+2′ REGEXP ’1\+2′;????????????????????? -> 0
mysql> SELECT ’1+2′ REGEXP ’1\\+2′;???????????????????? -> 1
原文地址:mysql正则表达式regexp使用详解, 感谢原作者分享。