MySQL之——正则表达式

 正则表达式 

        regexp操作符,regexp操作符后面跟着的就是正则表达式,正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较。

like和regexp的区别

        like匹配整个列,如果被匹配的文本仅在列值中出现(没有配合其他通配符),like将不会找到他。regexp在列值内进行匹配,如果被匹配的文本在列值中出现,regexp将会找到它,相应的行将被返回。

举个例子:假设有一个表number表中的数据如下

select n from number where n like '1234';
#显示n = '1234'的三组数据 不会显示 n = '123456789'

select n from number where n regexp '1234';
#全都显示

匹配单个实例

  • | :表示匹配其中之一,使用 | 功能上类似or
  • [ ] :匹配字符之一,[ ] 是另一种形式的or语句。[123]为[1|2|3]的缩写
  • [ - ] :匹配范围,使用-来定义一个范围。例如[1 - 3],[a - z]
  • \\ :转义字符,多数正则表达式使用单个反斜杠作为转义字符,但是MySQL要求两个反斜杠(MySQL自己解释一个,正则表达式自己解释一个)
  • 匹配字符类 : 存在找出你自己经常使用的数字,所有字母符或所有数字字母字符等的匹配。为更方便工作,也可以使用预定义的字符集,称为字符类
说明
[[:alnum:]]任意字母和数字,同[a - z A- Z 0 -9]
[[:alpha:]]任意字符,[a - z A - Z]
[[:blank:]]空格和制表[ \\t ]
[[:cntrl:]]ASCII控制字符  ASCII 0到31和127
[[:digit:]]任意数字 [0 - 9]
[[:graph:]]与[:print:]相同,但不包括空格
[[:lower:]]任意小写字母
[[:print:]]任意可打印字符
[[:punct:]]不在[[:alnum:]]和[[:cntrl:]]的字符
[[:space:]]包括空格在内的任意空白字符         [\\f\\n\\r\\t\\v]
[[:upper:]]任意大写字母
[[:xdigit:]]任意十六进制数字                        [a - f A - F 0 - 9]

匹配多个实例

  • 常用元字符
元字符说明
.匹配任意字符
^匹配字符串的开始,^在  [  ]中表示否定
$匹配字符串的结束

  • 重复元字符
元字符说明
*0个或多个匹配
+一个或多个匹配(等于{1,})
0个或一个匹配(等于{0,1})
{n}指定数目匹配
{n,}不少于指定数目的匹配

{n,m}

匹配数目的范围  m不超过255

注意元字符是和其后面字符匹配

*n 就是0个或多个n

select 'fofo' regexp '^f.*$';    #  1
select 'fofo' regexp '^fo$';     #  0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coke_3.2.2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值