DEELX 正则表达式扩展语法:条件表达式
回到:目录 | 上一页:独立表达式 | 下一页:递归表达式
条件表达式
根据某个条件是否成立,来选择匹配 2 个可选表达式中的其中一个。
说明
可以用于条件表达式的条件有两种类型:
- 指定分组(group)是否进行了捕获。
- 文本中当前位置是否可以与指定表达式匹配。
条件表达式的格式及说明:
表达式 |
条件特点 |
条件说明 |
(?(1)yes|no) |
条件为数字 |
分组1如果有捕获,则进行 yes 部分匹配,否则 no 部分 |
(?(?=a)aa|bbb) |
条件为预搜索 |
如果当前位置右侧是 a,则进行匹配 aa,否则匹配 bbb |
(?(xxx)aa|bbb) |
不与分组命名吻合 |
如果不与任何分组命名吻合,则视为 (?=xxx)
相同 |
(?(name)yes|no) |
与分组命名吻合 |
如果与某分组命名吻合,则视为判断该分组是否进行捕获 |
另外:
- 如果表达式为 RIGHTTOLEFT 模式,那么 (?(xxx)aa|bbb)
与 (?(?<=xxx)aa|bbb)
相同。
- 如果条件表达式只有一个选择项,那么这个选项是在条件成立时进行匹配。
- 如果条件表达式中,使用“|”进行分隔的选项多于2个,则只有第一个“|”被视为条件表达式选项分隔符。比如: (?(?=xxx)yes|no1|no2),条件成立时,匹配
yes 部分,否则匹配 "no1|no2"。
|