日期:2014-05-20  浏览次数:20792 次

正则表达式的序号问题
Java code
Pattern p = Pattern.compile("\\d{3,5}");
        String s = "123-34345-234-00";
        Matcher m = p.matcher(s);
        p(m.matches());
        m.reset();
        p(m.find());
        p(m.start() + "-" + m.end());
        p(m.find());
        p(m.start() + "-" + m.end());
        p(m.find());
        p(m.start() + "-" + m.end());
        p(m.find());

----------------------------------------------------
输出结果:
false
true
0-3
true
4-9
true
10-13
false
这个字符串的序号是怎么编写的,相当于数组的下标吗,如果“123-34345-234-00”对应的序号是从0开始,那么第一个find的序号应该是从0-2,而不是0-3,如何解释输出结果?

------解决方案--------------------
跟String#substring的参数一样,end是结束index,但不包括该字符