我试图从字符串中捕获单词或单词:
input: "aa bb"
pattern: "(.*) bb"
expected group: "aa"
input: "aa yy bb xx"
pattern: "(.*) bb (.*)"
expected groups: "aa yy, xx"
但是在我的尝试中它始终捕获整个字符串。我的错误在哪里?
String patternString = "(.*) bb";
Log("patternString: " + patternString);
Pattern p = Pattern.compile(patternString);
Matcher m = p.matcher("aa bb");
while(m.find()) {
Log("group: " + m.group());
//Log: group: aa bb
}
答案 0 :(得分:4)
你想让第一组不是整场比赛。您应该使用m.group(1)
代替返回整个匹配的m.group()
。
有关可用的API,请参阅documentation of Matcher
。使用Matcher#groupCount()
获取上次匹配中的组数。