?
が貪欲な量指定子であり、それに気が進まないことを私は知って??
います。次のように使用すると、常に空の出力が得られますか? それは常に左から右に動作するためですか(最初にゼロの出現を見てから一致した出現を見てください)、または別のものですか?
Pattern pattern = Pattern.compile("a??");
Matcher matcher = pattern.matcher("aba");
while(matcher.find()){
System.out.println(matcher.start()+"["+matcher.group()+"]"+matcher.end());
}
出力:
0[]0
1[]1
2[]2
3[]3