考虑这个简单的例子:
String myPattern= "\\[(\"(.+[^\"])\",\\s*){1,3}(\"(.+[^\"])\")\\]";
final Pattern compile1 = Pattern.compile(myPattern);
final Matcher matcher = compile1.matcher(myString);
我在匹配器中有两个用于此“((.+[^\"])\",\s*){1,3}
”的组:
((.+[^\"])\",\s*)
和
(.+[^\"])
但我只想要一个小组 - (.+[^\"])
。如何将{1,3}的表达式括在括号中以进行评估,以便它不包含在组中?
我尝试使用方括号,但它没有用。我真的厌倦了这个问题,最后决定问,因为我经常要做
matcher.getGroup(1);
matcher.getGroup(3);
答案 0 :(得分:2)
使用非捕获组(?: )
,即(?:yourregex)
这意味着匹配,但不包括在捕获组中。