码迷,mamicode.com
首页 > 数据库 > 详细

mysql的正则表达式

时间:2015-07-12 17:15:00      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:

所谓正在表达式,就是通过模式去匹配一类字符串。MySQL支持的模式字符如下表所示:

MySQL支持的模式字符
模式字符 含义
^ 匹配字符串的开始部分
$ 匹配字符串的结束部分
. 匹配字符串中的任意一个字符
[字符集合] 匹配字符集合中的任意一个字符
[^字符集合] 匹配字符集合外的任意一个字符
str1|str2|str3 匹配str1,sr2和str3中的任意一个字符串
* 匹配字符,包含0个和1个
+ 匹配字符,包含1个
字符串{N} 字符串出现n次
字符串{m,n} 字符串出现至少M次,最多N次

在模式匹配的时候,如果相符则返回1,否则返回0。

1. 执行带有"^"模式字符的SQL。

SELECT cjgong REGEXP ^c 特定字符开头,cjgongcjgong REGEXP ^cjgong 特定字符串开头;

执行SQL,结果如下所示:

技术分享

2. 执行带有"$"模式字符的SQL。

SELECT cjgong REGEXP g$ 特定字符结尾,cjgongcjgong REGEXP cjgong$ 特定字符串结尾;

执行SQL,结果如下所示:

技术分享

3. 执行带有"."模式字符的SQL。

SELECT cjgong REGEXP ^c....g$ 匹配4个任意字符

执行SQL,结果如下所示:

技术分享

4. 执行带有"[]"和"[^]"模式字符的SQL。

SELECT cjgong REGEXP [abc] 指定字符串字符,cjgong REGEXP [a-zA-Z] 指定字符串中的集合区间,

cjgong REGEXP [^abc] 指定字符外字符,cjgong REGEXP [^a-zA-Z0-9] 指定字符外集合区间;

执行SQL,结果如下所示:

技术分享

5. 执行带有"*"和"+"模式字符的SQL。

SELECT cjgong REGEXP a*g,cjgong REGEXP a+g;

通过模式字符"*"和"+"可以匹配字符g之前是否有多个字符a,不过前者表示0个或任意个字符,而后者至少表示一个字符,因此显示结果分别为1和0。

执行SQL,结果如下所示:

技术分享

6. 执行带有"|"模式字符的SQL。

SELECT cjgong REGEXP cjg 指定单个字符,cjgong REGEXP cjc|cjgc 指定多个字符;

执行SQL,结果如下所示:

技术分享

7. 执行带有"{M}"和{M,N}模式字符的SQL。

SELECT cccjgong REGEXP c{3} 匹配3个c,cccjgongg REGEXP g{2} 匹配2个g,
cgong REGEXP cj{1,2} 至少1个最多2个,cjcjgong REGEXP cj{1,2} 至少1个最多2个;

c{3}表示字符串c连续出现3次,cj{1,2}表示字符串cj至少出现一次最多连接出现3次。

执行SQL,结果如下所示:

技术分享

正则表达式的功能非常强大,使用正则表达式可以灵活地设置字符串匹配的条件。

mysql的正则表达式

标签:

原文地址:http://www.cnblogs.com/longshiyVip/p/4641104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!