赞
踩
正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。
MySQL通过REGEXP关键字支持正则表达式进行字符串匹配。
格式
| 模式 | 描述 |
|---|---|
| ^ | 匹配输入字符串的开始位置。 |
| $ | 匹配输入字符串的结束位置。 |
| . | 匹配除 “\n” 之外的任何单个字符。 |
| […] | 字符集合。匹配所包含的任意一个字符。例如, ‘[abc]’ 可以匹配 “plain” 中的 ‘a’。 |
| [^…] | 负值字符集合。匹配未包含的任意字符。例如, ‘[^abc]’ 可以匹配 “plain” 中的’p’。 |
| p1|p2|p3 | 匹配 p1 或 p2 或 p3。例如,‘z|food’ 能匹配 “z” 或 “food”。‘(z|f)ood’ 则匹配 “zood” 或 “food”。 |
| ***** | 匹配前面的子表达式零次或多次。例如,zo* 能匹配 “z” 以及 “zoo”。* 等价于{0,}。 |
| + | 匹配前面的子表达式一次或多次。例如,‘zo+’ 能匹配 “zo” 以及 “zoo”,但不能匹配 “z”。+ 等价于 {1,}。 |
| {n} | n 是一个非负整数。匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。 |
| {n,m} | m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。 |
例如
-- ^ 在字符串开始处进行匹配 SELECT 'abc' REGEXP '^a'; -- $ 在字符串末尾开始匹配 SELECT 'abc' REGEXP 'a$'; SELECT 'abc' REGEXP 'c$'; -- . 匹配任意字符 SELECT 'abc' REGEXP '.b'; SELECT 'abc' REGEXP '.c'; SELECT 'abc' REGEXP 'a.'; -- [...] 匹配括号内的任意单个字符 SELECT 'abc' REGEXP '[xyz]'; SELECT 'abc' REGEXP '[xaz]'; -- [^...] 注意^符合只有在[]内才是取反的意思,在别的地方都是表示开始处匹配 SELECT 'a' REGEXP '[^abc]'; SELECT 'x' REGEXP '[^abc]'; SELECT 'abc' REGEXP '[^a]'; -- a* 匹配0个或多个a,包括空字符串。 可以作为占位符使用.有没有指定字符都可以匹配到数据 SELECT 'stab' REGEXP '.ta*b'; SELECT 'stb' REGEXP '.ta*b'; SELECT '' REGEXP 'a*'; -- a+ 匹配1个或者多个a,但是不包括空字符 SELECT 'stab' REGEXP '.ta+b'; SELECT 'stb' REGEXP '.ta+b'; -- a? 匹配0个或者1个a SELECT 'stb' REGEXP '.ta?b'; SELECT 'stab' REGEXP '.ta?b'; SELECT 'staab' REGEXP '.ta?b'; -- a1|a2 匹配a1或者a2, SELECT 'a' REGEXP 'a|b'; SELECT 'b' REGEXP 'a|b'; SELECT 'b' REGEXP '^(a|b)'; SELECT 'a' REGEXP '^(a|b)'; SELECT 'c' REGEXP '^(a|b)'; -- a{m} 匹配m个a SELECT 'auuuuc' REGEXP 'au{4}c'; SELECT 'auuuuc' REGEXP 'au{3}c'; -- a{m,n} 匹配m到n个a,包含m和n SELECT 'auuuuc' REGEXP 'au{3,5}c'; SELECT 'auuuuc' REGEXP 'au{4,5}c'; SELECT 'auuuuc' REGEXP 'au{5,10}c'; -- (abc) abc作为一个序列匹配,不用括号括起来都是用单个字符去匹配,如果要把多个字符作为一个整体去匹配就需要用到括号,所以括号适合上面的所有情况。 SELECT 'xababy' REGEXP 'x(abab)y'; SELECT 'xababy' REGEXP 'x(ab)*y'; SELECT 'xababy' REGEXP 'x(ab){1,2}y';
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。