首页 > 代码库 > backreference Oracle正则表达式中的反向引用
backreference Oracle正则表达式中的反向引用
这是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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。