我认为小组[1]应该是" xyz"小组[2]应该是' ab'对于此输入字符串。
String p = "(.+)\\s(ab|cd|efg)";
Pattern pattern = Pattern.compile(p);
String str = "xyz ab";
Matcher m = pattern.matcher(str);
System.out.println(m.group(1));
System.out.println(m.group(2));
答案 0 :(得分:1)
您必须致电m.find()
String p = "(.+)\\s(ab|cd|efg)";
Pattern pattern = Pattern.compile(p,Pattern.DOTALL);
String str = "xyz ab";
Matcher m = pattern.matcher(str);
if (m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
find()
将尝试查找与模式匹配的输入序列的下一个子序列。
输出:
xyz
ab
您也可以在获取群组之前致电m.matches();
,而不是if (m.find())
,但将find()
或matches()
与if
一起使用是一种很好的做法验证找到的匹配