对命名组使用OR运算符

时间:2019-01-09 11:47:34

标签: java regex

在正则表达式Java中,我们可以使用诸如(?<group_name>pattern)这样的命名组。它还支持像(pattern1|pattern2)这样的OR运算符。 我可以使用诸如(pattern1)|(pattern2)之类的命名组和OR运算符吗?也就是说,如果组中的一个模式匹配,则结果为true。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您在this page中搜索“名称”,则会发现:

  

特殊构造(命名捕获和非捕获)

     

(?<name>X) X,作为命名捕获组

是的,您可以使用命名组:

Matcher m = Pattern.compile("(?<foo>a)|(?<bar>b)").matcher("a");
if (m.find()) {
    System.out.println(m.group("foo")); // a
    System.out.println(m.group("bar")); // null
}