我想知道是否有可能在 java 正则表达式上使用 + 运算符获取组的所有匹配项。
示例代码:
public static void main(String[] args) {
String input = "Start: First match, second match, third match.";
Pattern p = Pattern.compile("Start:\\s*(([\\w\\s]+),?\\s*)+.");
Matcher m = p.matcher(input);
while (m.find()) {
System.out.println("Regular expression Match: "+ m.group(0));
System.out.println("Group 1: "+ m.group(1));
System.out.println("Group 2: "+ m.group(2));
}
}
输出:
Regular expression Match: Start: First match, second match, third match.
Group 1: third match
Group 2: third match
尽管由于 Regexp 上的第二个“+”运算符,第 2 组匹配了 3 次“第一个匹配”、“第二个匹配”、“第三个匹配”,但我们只能访问 match.group(2) 上的最后一个。
我的问题是:
¿ 有一种方法可以访问该表达式上组 2 的其他匹配项,或者当 + 运算符导致组上的多个匹配时,只能访问最后一个匹配项?。
谢谢。