backreference Oracle正則表達式中的反向引用

Posted ldxsuanfa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了backreference Oracle正則表達式中的反向引用相关的知识,希望对你有一定的参考价值。

技术分享图片

 

这是Oracle对正則表達式的backreference的描写叙述

从定义中能够看到,当匹配表达式中已()的形式将一个子串包括起来。后面就能够以?

的形式来引用。1相应第一个(),2相应第二个...

 

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

 

regexp_like

 

regexp_like(‘1211233‘,‘^([0-9])(d)112(d)3$‘)

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

 

regexp_replace

 

regexp_replace(‘1234567‘,‘^(.)(.)(.)(.)(.)(.)‘,‘125‘)

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

猜猜这里会返回什么?

因为^(.)(.)(.)(.)(.)(.)匹配了字符串的前6位,因此结果为125||第6位之后的部分。即1257

以上是关于backreference Oracle正則表達式中的反向引用的主要内容,如果未能解决你的问题,请参考以下文章

Python——正則表達式

iOS正則表達式

Oracle exp使用正則表達式导出部分表

JavaScript 正則表達式

DOM笔记:JavaScript正則表達式

PHP第九课 正則表達式在PHP中的使用