有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

scjp测试中的java正则表达式测试

我正在尝试解决一个关于正则表达式的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。除了最后的输出,我什么都懂。既然“ab34ef”中的最后一个索引是5,怎么可能打印成6

需要帮忙吗


共 (1) 个答案

  1. # 1 楼答案

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