Java模式捕获字

时间:2016-04-30 07:41:46

标签: java regex

我试图从字符串中捕获单词或单词:

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
}

1 个答案:

答案 0 :(得分:4)

你想让第一组不是整场比赛。您应该使用m.group(1)代替返回整个匹配的m.group()

有关可用的API,请参阅documentation of Matcher。使用Matcher#groupCount()获取上次匹配中的组数。