嵌入条件

2017-12-14 17:53:49
linefo
1002
最后编辑:linefo 于 2017-12-14 23:57:52

首先,不是所有环境都支持嵌入条件的写法
然后,往往有更简单的方式实现,所以嵌入条件用的少一些



回溯引用条件


格式:(?(一个回溯引用)表达式)

我们之前在介绍回溯引用时,说过 \1 代表对第一个表达式的引用,而在这里,我们要去掉 \ 使用它,具体请看下面的例子

(我没想出一个很实用的例子,只能以一个正确的例子说明了)


在上面的例子中,表达式(<p>)(?(1).*</p>)中,(<p>)是一个子表达式,?(1)表示对第一个引用进行判断(这里面1就表示第一个引用了),.*</p>是当?(1)判断成功以后,才会继续执行的表达式。


前后查找条件


格式:(?(前后查找条件)表达式)

(和上一个例子语法类似,b(?(?=-)-a)这个表达式中,从左到右先匹配 b,然后使用 (?=-) 找到 - 的位置,?(?=-) 判断找到成功后,继续匹配 -a)