mysql正则表达式搜索

一、 like和regexp的区别

1、like是完全匹配

%:表示任意0个或多个字符。可匹配任意类型和长度的字符
%%:有些情况下若是中文,请使用两个百分号(%%)表示。
_: 表示任意单个字符。
[ ]:表示括号内所列字符中的一个。
[^ ] :表示不在括号所列之内的单个字符。

2、regexp是部分匹配,等同于rlike

二、正则表达式

(一)regexp操作符

1、匹配内容:

  • […] :匹配 […] 中的所有字符,例如 [aeiou] 匹配字符串 “google runoob taobao” 中所有的 e o u a 字母。
  • [^…] :匹配除了 […] 中字符的所有字符,例如 [^aeiou] 匹配字符串 “google runoob taobao” 中除了 e o u a 字母的所有字母。
  • p1|p2|p3 匹配 p1 或 p2 或 p3。例如,‘z|food’ 能匹配 “z” 或 “food”。’(z|f)ood’ 则匹配 “zood” 或 “food”。
    [A-Z]:匹配所有大写字母,[a-z] 表示所有小写字母。[A-Za-z]匹配所有字母。
  • . :匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。
  • (…):对expression进行分组。

2、重复次数:

  • *:表示匹配前一个字符0次或无限次;贪婪匹配,即尽可能多的匹配。
  • +:表示匹配前一个字符1次或无限次;贪婪匹配,即尽可能多的匹配。
  • ?:表示匹配前一个字符的0次或1次
  • +或* 后跟?:非贪婪匹配,即尽可能少的匹配。
  • .* ? :表示匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。如:a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab和ab。
  • {n} :匹配确定的 n 次。例如,‘o{2}’ 不能匹配 “Bob” 中的 ‘o’,但是能匹配 “food” 中的两个 o。
  • {n,m} :最少匹配 n 次且最多匹配 m 次。

3、匹配位置:

  • ^ :匹配输入字符串的开始位置。
  • $ :匹配输入字符串的结束位置。

(二)regexp_extract

regexp_extract(string subject, string pattern, int index)

(1)第一参数: 要处理的字段
(2)第二参数: 需要匹配的正则表达式
(3)第三个参数:
0是显示与之匹配的整个字符串
1 是显示第一个括号里面的
2 是显示第二个括号里面的字段…

select regexp_extract('hitdecisiondlist','(i)(.*?)(e)',0) ;
结果:itde

select regexp_extract('hitdecisiondlist','(i)(.*?)(e)',1) ;
结果:i

select regexp_extract('hitdecisiondlist','(i)(.*?)(e)',2) ;
结果:td

(二)regexp_replace

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值