我想从带有模式的行中取出数字,但它不会按照我的意愿对数字进行分组。
public static void main(String[] args) {
Pattern pattern = Pattern.compile("(.*?)((\\d+),{0,1}\\s*){7}");
Scanner in = new Scanner("text: 1, 2, 3, 4, 5, 6, 7"); // new Scanner(new File("data.txt"));
in.useDelimiter("\n");
try {
while(!(in.hasNext(pattern))) {
//Skip corrupted data
in.nextLine();
}
} catch(NoSuchElementException ex) {
}
String line = in.next();
Matcher m = pattern.matcher(line);
m.matches();
int groupCount = m.groupCount();
for(int i = 1; i <= groupCount; i++) {
System.out.println("group(" + i + ") = " + m.group(i));
}
}
输出:
组(1)=文本:
组(2)= 7
组(3)= 7
我想要得到的是:
组(2)= 1
组(3)= 2
...
组(8)= 7
我可以从这个模式中得到这个还是应该再做一个?