java正则表达式查找但不包含在组中

时间:2015-05-20 09:55:48

标签: java regex

考虑这个简单的例子:

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);

1 个答案:

答案 0 :(得分:2)

使用非捕获组(?: ),即(?:yourregex)

这意味着匹配,但不包括在捕获组中。