Java 在JVM中多次使用同一命名组?

Java 在JVM中多次使用同一命名组?,java,regex,groovy,Java,Regex,Groovy,在JVM中(最好是在Java或小型库中)是否有一种方法可以拥有以下正则表达式(?\\d\\d)*,并能够提取所有时间?例如,如果给出了“12131415”,那么就能够得到类似于{12,13,14,15}的小时集合 groovy支持这一点吗?下面的正则表达式将捕获每两个数字并将其存储到单独的组中 你的代码是 String s = "12131415"; Pattern p = Pattern.compile("(?<Hour>\\d{2})"); Matcher m = p.match

在JVM中(最好是在Java或小型库中)是否有一种方法可以拥有以下正则表达式
(?\\d\\d)*
,并能够提取所有时间?例如,如果给出了“12131415”,那么就能够得到类似于{12,13,14,15}的小时集合


groovy支持这一点吗?

下面的正则表达式将捕获每两个数字并将其存储到单独的组中

你的代码是

String s = "12131415";
Pattern p = Pattern.compile("(?<Hour>\\d{2})");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1));
}
String s=“12131415”;
模式p=Pattern.compile((?\\d{2})”;
匹配器m=匹配器p;
while(m.find()){
系统输出println(m.group(1));
}

在JVM中有什么方法吗?JVM与此有什么关系p这可以在.Net中完成,但我无法使用java来完成,而且我也没有找到能够提供帮助的库。所以我需要一个java解决方案。我之所以说JVM,是因为如果没有lib,也许可以用Groovy或其他在JVM中工作的编程语言来实现。谢谢,你的例子可以,但实际上我的表达式更复杂。它有一些可选的命名组,一些重复0..n,还有一些在表达式中的多个位置找到。所以我无法将你的解决方案应用到我的案例中。我正在寻找一个更像…getGroups(“Hour”)的解决方案,它返回一个集合。因为在java中不可能获得所有具有给定名称的命名组,而且我没有找到任何库来支持这一点,所以我将接受您的解决方案。在我的例子中,我将正则表达式拆分为较小的表达式,并使用find(如您所建议的)为每个表达式解析字符串。