码迷,mamicode.com
首页 > 数据库 > 详细

backreference Oracle正则表达式中的反向引用

时间:2014-06-01 10:53:39      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:backreference 正则 反向引

bubuko.com,布布扣

 

这是Oracle对正则表达式的backreference的描述

从定义中可以看到,当匹配表达式中已()的形式将一个子串包含起来,后面就可以以\?的形式来引用。\1对应第一个(),\2对应第二个...

 

反向引用的引入使得正则表达式的匹配功能变得更加强大,介绍两个在oracle正则函数中的应用

 

regexp_like

 

regexp_like(‘1211233‘,‘^([0-9])(\d)\1\1\2(\d)\3$‘)

上面这个例子中,匹配表达式里,\1表示第一个([0-9]),这个表达式要判断字符串中的第3、4位数字是否和第1位相同,而不仅仅是匹配[0-9]

 

regexp_replace

 

regexp_replace(‘1234567‘,‘^(.)(.)(.)(.)(.)(.)‘,‘\1\2\5‘)

这里,将符合匹配表达式中的部分替换掉,换成满足\1\2\5的内容,即第一个(.)第二个(.)和第五个(.)

猜猜这里会返回什么?

由于^(.)(.)(.)(.)(.)(.)匹配了字符串的前6位,因此结果为\1\2\5||第6位之后的部分,即1257

backreference Oracle正则表达式中的反向引用,布布扣,bubuko.com

backreference Oracle正则表达式中的反向引用

标签:backreference 正则 反向引

原文地址:http://blog.csdn.net/wildwave/article/details/27671827

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!