3

我正在尝试解决有关正则表达式的 scjp 测试。

这是一个代码...

import java.util.regex.*;

public class TestRegex {
    public static void main(String[] args) {
        Pattern p = Pattern.compile(args[0]);
        Matcher m = p.matcher(args[1]);
        boolean b = false;
        while (b = m.find()) {
            System.out.print(m.start() + m.group());
        }
    }
} 

java TestRegex "\d*" ab34ef 

这个测试的答案是01234456。除了最后一个输出(6)之外,我理解了所有内容。由于“ab34ef”中的最后一个索引是 5,怎么可能打印 6 ?

任何帮助....

4

1 回答 1

5

\d*意思是“零个或多个数字”,实际上什么都不匹配。6 是匹配字符串中最后一个字符之后的空字符串。

于 2013-03-25T16:18:46.843 回答