mysql正则表达式匹配应用

mysql正则表达式匹配应用

ID:7234909

大小:73.00 KB

页数:9页

时间:2018-02-08

mysql正则表达式匹配应用_第1页
mysql正则表达式匹配应用_第2页
mysql正则表达式匹配应用_第3页
mysql正则表达式匹配应用_第4页
mysql正则表达式匹配应用_第5页
资源描述:

《mysql正则表达式匹配应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、mysqlwhere子句的模式匹配今天在应用中遇到了这样的一个问题,有一个字段t1,其中的值类似于:1,1,1,2,3,3,4,4,5,5,2,4,3,2,1,2需要从里面搜索出比如说:第一个逗号前的数字范围为3-5之间,第三个逗号前的数字的范围为3-5之间,第10个逗号前的数字范围为3-5之间,其余的都为1-5之间。。。则sql语句可以这么写:1.SELECT*FROMtbWHEREt1REGEXP'^[3-5],[1-5],[3-5],[1-5],[1-5],[1-5],[1-5],[1-5],[1-5],[3-5],[1-5],[1-5],[

2、1-5],[1-5],[1-5],[1-5]%';1.使用LIKE和NOTLIKE比较操作符(注意不能使用=或!=);2.模式默认是忽略大小写的;3.允许使用”_”匹配任何单个字符,”%”匹配任意数目字符(包括零字符);MySQL还提供象UNIX实用程序的扩展正则表达式模式匹配的格式:1.使用REGEXP和NOTREGEXP操作符(或RLIKE和NOTRLIKE,他们是同义词);2.REGEXP模式匹配与被匹配字符的任何地方匹配,则匹配成功(即只要被匹配字符包含或者可以等于所定义的模式,就匹配成功);不同于LIKE模式匹配,只有和整个值匹配,才匹配

3、成功(即只有被匹配字符完全和所定义的模式匹配,才匹配成功)3.REGEXP默认也是不区分大小写,可以使用BINARY关键词强制区分大小写;如:SELECT*FROMpetWHEREnameREGEXPBINARY‘^B’;4.正则表达式为一个表达式,它能够描述一组字符串。REGEXP操作符完成MySQL的扩展正则表达式匹配。REGEXP实现的功能是如果被匹配字符中部分或完全符合所定义的表达式描述的字符,则表示匹配成功。1)最简单的正则表达式是不含任何特殊字符的正则表达式,如hello。SELECT*FROMpetWHEREnameREGEXP‘he

4、llo’;表示的意思是如果name这列的某一行包含hello这个单词,则匹配就成功了。(注意和LIKE的区别,LIKE要求name这列的某一行必须完全等于hello,才匹配成功)。2)非平凡的正则表达式,除了含有最简单表达式那些东西,还需要采用特殊的特殊结构,用到的字符,往下看。(因此,通常的正则表达式是普通单词和这些正则表达式字符构成的表达式)5.扩展正则表达式的一些字符:1)‘.’匹配任何单个字符;2)[…]匹配在方括号内的任何字符,可以使用’-’表示范围,如[a-z],[0-9],而且可以混合[a-dXYZ]表示匹配a,b,c,d,X,Y,Z

5、中的任何一个;(注意使用括号以及’

6、’的方法也可以达到相同的效果,如(a

7、b

8、c)匹配a,b,c中的任何一个);此外可以使用’^’表示否定,如[^a-z]表示不含有a-z中间的任何一个字符;3)‘*’表示匹配0个或多个在它前面的字符。如x*表示0个或多个x字符,.*表示匹配任何数量的任何字符;4)可以将模式定位必须匹配被匹配字符的开始或结尾,在匹配模式前加”^”:表示匹配从被匹配字符的最开头开始,在匹配模式后加”$”:表示匹配要进行到被匹配字符的最末尾。5)‘+’表示匹配1个或多个在它前面的字符。如a+表示1个或多个a字符。6)‘?’表示匹配0个或

9、1个在它前面的字符。如a?表示0个或1个a字符。7)‘

10、’如de

11、abc表示匹配序列de或者abc。注意虽然[…]也可以表示匹配中的某一个,但是每次仅仅能表示单个字符及[a-bXYZ]实际每一次只代表了一个字符。()括号可以应用在表达式中,使得更容易理解。9)a{5}表示匹配共5个a,a{2,8}表示匹配2~8个a。a*可以写成a{0,}第二个参数省略表示没有上界;a+可以写成a{1,};a?可以写成a{0,1}更准确地讲,a{n}与a的n个实例准确匹配。a{n,}匹配a的n个或更多实例。a{m,n}匹配a的m~n个实例,包含m和nm和n必须位于0

12、~RE_DUP_MAX(默认为255)的范围内,包含0和RE_DUP_MAX。如果同时给定了m和n,m必须小于或等于n。10)标准类别[:character_class:]:常用的一些标准类别,一般在[]中使用,由于用在[]中故和[a-z]类似,每一次只能顶替一个字符。(这个有点类似perl里面定义的常用的一些标准类别:w表示一个单词字符即[a-zA-Z0-9];W一个非单词字符与w相反;d一个数字即[0-9];D一个非数字;s一个白空间字

13、符即[tfr];f为换页符;S一个非白空间字符)标准的类别名称:alnum文字数字字符alpha文字字符bl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。