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

原文地址:https://www.cnblogs.com/ldxsuanfa/p/9928344.html

时间: 2024-09-30 07:03:52

backreference Oracle正則表達式中的反向引用的相关文章

javascript中的正則表達式

对文本数据进行操作是JavaScript中常见的任务.正則表達式通过同意程序猿指定字符串匹配的模式来简化诸如验证表单中输入是否具有正确格式之类的任务. 1.正則表達式标记: 字符 含义 举例 i 大写和小写不敏感 对于模式/http/i  "http" 和"HttP" 一样能够匹配 g 全局匹配.找出所有匹配字符串,而不不过找到第一个就返回. 经常使用于替换 m 多行匹配 2.正則表達式位置指示符:规定模式在它所匹配的字符串里的位置. 字符 含义 举例 ^ 开头 对

vim中使用正則表達式

一.使用正則表達式的命令 使用正則表達式的命令最常见的就是 / (搜索)命令. 其格式例如以下: /正則表達式 还有一个非常实用的命令就是 :s(替换)命令,将第一个//之间的正則表達式替换成第二个//之间的字符串. :s/正則表達式/替换字符串/选项 在学习正則表達式时能够利用 / 命令来练习. 二.元字符 元字符是具有特殊意义的字符.使用元字符能够表达随意字符.行首.行 尾.某几个字符等意义. 元字符一览 元字符 说明 . 匹配随意一个字符 [abc] 匹配方括号里的随意一个字符. 能够使用

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

今天内容 1.正則表達式 2.数学函数 3.日期函数 4.错误处理 正則表達式: 1.模式修正符 2.五个经常使用函数 另外一个正則表達式的站点:http://www.jb51.net/tools/zhengze.html 正則表達式 1.原子 2.元子符 3.模式修正符 正則表達式函数 1.preg_match(); 2.preg_match_all(); 3.preg_grep(); 4.preg_replace(); 5.preg_split(); 原子: .:代表随意一个字符 \w: 字

JAVA学习第六十五课 — 正則表達式

正則表達式:主要应用于操作字符串.通过一些特定的符号来体现 举例: QQ号的校验 6~9位.0不得开头.必须是数字 String类中有matches方法 matches(String regex) 告知此字符串是否匹配给定的正則表達式. regex,就是给定的正則表達式 public static void checkQQ() { //第一位是数字1-9,第二位以后是0-9,除去第一位数剩下数字位数范围是5到8位 String regex = "[1-9][0-9]{5,8}";//正

正則表達式

一.概述 正則表達式是一种能够用于模式匹配和替换的强有力的工具.其作用例如以下: (1)測试字符串的某个模式.比如,能够对一个输入字符串进行測试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证. (2)替换文本.能够在文档中使用一个正則表達式来标识特定文字,然后能够所有将其删除,或者替换为别的文字: (3)依据模式匹配从字符串中提取一个子字符串. 能够用来在文本或输入字段中查找特定文字. 二.匹配字符 字符 解释说明 \ 将下一字符标记为特殊字符.文本.反向引用或

js正則表達式语法

1. 正則表達式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的一个字符. 举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:開始于2,结束于3.(注:下标从0開始还是从1開始,因当前编程语言的不同而可能不同) 举例2:表达式 "bcd&

DOM笔记(十):JavaScript正則表達式

一.RegExp ECMAScript通过RegExp类型类支持正則表達式,语法和Perl类似: var exp = /pattern/flags; patternb部分是不论什么简单的或复杂的正則表達式:flags是每一个正則表達式所带的一个或者多个标志. 正則表達式的模式匹配支持三个标志: g:全局模式,即模式应用于整个字符串.而非在发现第一个匹配项时马上停止 i:不区分大写和小写模式 m:多行模式,即到达一行文本末尾是还会继续茶查找下一行中是否存在与模式匹配的项. 1.创建正則表達式 Ja

JavaScript正則表達式知识汇总

Js 正則表達式知识汇总 正則表達式: 1.什么是RegExp?RegExp是正則表達式的缩写.RegExp 对象用于规定在文本中检索的内容. 2.定义RegExp:var +变量名=new RegExp(); 3.RegExp 对象有 3 个方法: 1)test()检索字符串中的指定值,返回值是true或false. var p1=new Reg("e"); document.write(Reg.test("welcome to China!")); 2)exec

利用正則表達式排除特定字符串

本文转载自:http://www.cnblogs.com/wangqiguo/archive/2012/05/08/2486548.html 查找不以baidu开头的字符串 baidu.comsina.com.cn 正则:^(? !baidu).*$  匹配结果就是第2行.也就是第1行被排除了这里使用了零宽度断言(?!exp),注意.我们有一个向前查找的语法(也叫顺序环视)  (?=exp)(?=exp) 会查找exp之前的[位置]假设将等号换成感叹号.就变成了否定语义,也就是说查找的位置的后面