Mysql快速复习(二)正则表达式

本文使用的表还是上一个表:


一:使用mysql正则表达式

mysql的like只有%和下划线_,regex功能更强大。

其中like要求整个数据都要匹配,而REGEXP只需要部分匹配即可。也就是说,用Like,必须这个字段的所有内容满足条件,而REGEXP只需要有任何一个片段满足即可。


1.select id from elec where id regexp '1007' order by id;    将显示匹配id=1000的行。


2.select id from elec where id regexp '.007' order by id;     将匹配.007的所有行。


3.进行or匹配

select id from elec where id regexp '1001|1003' order by id;

词语中使用了正则表达式1001|1003。|为正则表达式的or操作符。它表示匹配其中之一,因此1000和2000都匹配并返回。

也可匹配多个:1001|1003|1007


4.匹配几个字符之一

如果你只想匹配特定的字符,可以指定一组用[]括起来的字符来完成。


5.使用[]限定特定字符。

select id from elec where id regexp '100[23]';      返回匹配100x的值,但是这个x被[]限定取值为2,3。


[]实际上相当于另一种形式的or语句,但是不能用'1|2|3 ton'这种形式代替‘[123] ton’,因为mysql假定你的意思是'1'或‘2’或‘3 ton‘。除非把字符|括在一个集合中,否则它将应用于整个串。

[^123]可以匹配这些字符外任何东西。


6.匹配范围

集合可用来定义匹配的一个或多个字符,例如下面的集合将匹配数字0到9:

[01233456789],

为了简化这种类型的集合,可以用-来定义一个范围。如[0-9],此外范围不一定是数字,如[a-z]匹配任意字母字符。


7.为了匹配特殊字符,必须用\\为前导。\\-表示查找-,\\.表示查找.。

\\也用来引用元字符,具有特殊的含义。如:



8.匹配字符类

存在着出你自己常用的数组,所有字母字符或者所有数字字母字符等的匹配。为更方便的工作,可以使用预定义的字符集,成为字符类。



9.匹配多个实例

目前为止所有使用的正则表达式都试图匹配单次出现。如果存在一个匹配,改行被检索出来,如果不存在,检索不出任何行。但有时需要对匹配的数目进行更强的控制。例如,

你可能需要寻找所有的数,不管数中包含多少数字,或者你还可能讯炸一个单词并且还能够适应一个尾随化的s。可以用下列正则表达式重复元字符来完成。


举例:


或者:



10.定位符


注意如果^符号出现在[]里面,代表取反的意思。出现在外面代表定位。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值