1
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 ‘[[:<:]]shan[[:>:]]'; -> 1 mysql> select ‘fang shan zi’ regexp ‘[[:<:]]fang[[:>:]]'; -> 1 mysql> select ‘fang shans zi’ regexp ‘[[:<:]]shan[[:>:]]'; -> 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