我正在测试 Matcher 和 Pattern 类的一个小存根......请参阅下面的小存根..
package scjp2.escape.sequence.examples;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Sample_19 {
public static void main(String a[]){
String stream = "ab34ef";
Pattern pattern = Pattern.compile("\\d*");
//HERE * IS GREEDY QUANTIFIER THAT LOOKS FOR ZERO TO MANY COMBINATION THAT
//START WITH NUMBER
Matcher matcher = pattern.matcher(stream);
while(matcher.find()){
System.out.print(matcher.start()+matcher.group());
}
}
}
这里...我们要比较的字符串是“ab34ef”。长度为 6。
不,让我们看看迭代......
迭代 NO matcher.start() matcher.group()
1 0 ""
2 1""
3 2 34
4 4 ""
5 5 ""
现在..let combine...matcher.start() + matcher.group().... 根据我们的计算,输出是:0123445
但是,存根生成 01234456。
我无法理解“6”是从哪里来的。字符串索引从零开始,所以这里的最大索引是 5。那么 6 是从哪里来的?
它迭代循环六次..如何?有什么建议吗?