9 正则表达式

作用:

匹配文本中特殊的串,在where子句中使用正则表达式来更好地过滤数据
like和regexp的区别:

like匹配整个列;
regexp在列值中匹配(它也可以使用^和$来匹配整个列值)。
MySQL正则表达式匹配不区分大小写
为了区分,使用binary
.:表示匹配任意一个字符。

使用’|’进行or匹配:

例:
selete p_name
from product
where p_name regexp ‘1000|2000’
order by p_name;

使用”[]”,匹配几个字符之一:
[]是另一形式的or语句

selete p_name
from product
where p_name regexp ‘[123] ton’
order by p_name;
区分:where p_name regexp ‘1|2|3 ton’
1或2或3ton

^ :在集合的开头放置^,表示匹配除这些字符外任何东西,如:[^123]

-:定义范围,如:[0-9]、[a-z]

转义:匹配特殊字符:\作为前导,如:”\-“查找’-‘;”\.”查找’.’;”\\”查找’\’
注意:大多数正则表达式使用单个反斜杠转义特殊字符,但MySQL使用两个。

匹配多个

元字符说明
*0个或多个
+一个或多个
0个或一个
{n}指定数目
{n,}不少于n个
{n,m}n-m个

例:
selete p_name
from product
where p_name regexp ‘\[0-9] sticks?\)’
order by p_name;

\[0-9] sticks?\):两个”\”分别匹配‘(’’)’,sticks s后的?:?匹配它前面的字符0次或1次出现

例:
where p_name regexp ‘[[:digit:]]{4}’:匹配连在一起的4位数字

定位符:^:开始;$:结尾

以上,^有两种作用:
在集合中([和]定义),用来否定集合;
串的开始处;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值