扩展语法 - 条件表达式

DEELX

DEELX 正则表达式扩展语法:条件表达式

回到:目录 | 上一页:独立表达式 | 下一页:递归表达式


条件表达式

根据某个条件是否成立,来选择匹配 2 个可选表达式中的其中一个。


说明

可以用于条件表达式的条件有两种类型:

  1. 指定分组(group)是否进行了捕获。
  2. 文本中当前位置是否可以与指定表达式匹配。

条件表达式的格式及说明:

表达式

条件特点

条件说明

(?(1)yes|no)

条件为数字

分组1如果有捕获,则进行 yes 部分匹配,否则 no 部分

(?(?=a)aa|bbb)

条件为预搜索

如果当前位置右侧是 a,则进行匹配 aa,否则匹配 bbb

(?(xxx)aa|bbb)

不与分组命名吻合

如果不与任何分组命名吻合,则视为 (?=xxx) 相同

(?(name)yes|no)

与分组命名吻合

如果与某分组命名吻合,则视为判断该分组是否进行捕获

另外:

  1. 如果表达式为 RIGHTTOLEFT 模式,那么 (?(xxx)aa|bbb)(?(?<=xxx)aa|bbb) 相同。
  2. 如果条件表达式只有一个选择项,那么这个选项是在条件成立时进行匹配。
  3. 如果条件表达式中,使用“|”进行分隔的选项多于2个,则只有第一个“|”被视为条件表达式选项分隔符。比如: (?(?=xxx)yes|no1|no2),条件成立时,匹配 yes 部分,否则匹配 "no1|no2"。

 

regexlab.com © 2005 - 2006