【发布时间】:2016-07-06 18:53:30
【问题描述】:
是否可以在正则表达式中找到匹配字符串特定部分的所有组?
Pattern pattern = Pattern.compile("(green trousers)|(green\\s+t)");
Matcher matcher = pattern.matcher("my beautiful green trousers are red!");
while (matcher.find()) {
for (int i = 1; i <= matcher.groupCount(); i++) {
if (matcher.group(i) != null) {
System.out.println("group " + i + " matched");
}
}
}
这个例子只返回第一组作为匹配,但我也对第二组也匹配这一事实感兴趣。
【问题讨论】:
-
不,这不是正则表达式的工作方式。您必须检查 2 种不同的模式,看看它们是否都匹配。