パターンのある線から数字を取り出したいのですが、思い通りに数字をグループ化できません。
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));
}
}
出力:
group(1)=テキスト:
group(2)= 7
group(3)= 7
私が取得したいのは:
group(2)= 1
group(3)= 2
..。
group(8)= 7
この1つのパターンからこれを取得できますか、それとも別のパターンを作成する必要がありますか?