正则表达式的反向引用

来源:互联网 发布:mysql文件安装教程 编辑:程序博客网 时间:2024/05/16 09:25

对指定分组已捕获的字符串进行引用,要求文本中当前位置开始的字符串,必须和指定分组捕获到的字符串一致。表达式在匹配时,表达式引擎会将小括号"( )"包含的表达式所匹配到的字符串记录下来。在获取匹配结果的时候,小括号包含的表达式所匹配到的字符串可以单独获取。

其实,"小括号包含的表达式所匹配到的字符串" 不仅是在匹配结束后才可以使用,在匹配过程中也可以使用。表达式后边的部分,可以引用前面"括号内的子匹配已经匹配到的字符串"。引用方法是 "\" 加上一个数字。"\1" 引用第1对括号内匹配到的字符串,"\2"引用第2对括号内匹配到的字符串……以此类推,如果一对括号内包含另一对括号,则外层的括号先排序号。换句话说,哪一对的左括号 "("在前,那这一对就先排序号。


说明

DEELX 支持的反向引用格式:

反向引用

说明

\nnn

对指定编号的分组进行反向引用

\g

对指定名字的命名分组进行反向引用

\k

\k'name'

另外,如果被引用的捕获组(括号对)未进行捕获时,则该反向引用将匹配失败。

DEELX 最多将 3位数字识别为反向引用,如果想在表达式中表示 \1 外加一个字符 2 ,那么应该写成 \0012。在 DEELX 中,不管是否有第 12对括号,写成 \12 都表示对第 12 对括号的引用。

DEELX 不将 \nnn 格式识别为 8 进制数
0 0
原创粉丝点击