我是否误解了有关Java正则表达式的内容?以下内容不应该与前导零匹配:

public class Testit {
    public static void main(String[] args) {
        format("0115724848");
    }


    private static void format(String elementToFormat) {
        if (elementToFormat.matches("^0")) {
            System.out.println("leading zero:" + elementToFormat);
        } else {
            System.out.println("no leading zero:" + elementToFormat);
        }
    }
}

最佳答案

matches尝试将模式与整个输入字符串进行匹配……而您输入的字符串不只是“字符串开头为0”。

您需要"0.*"(正是因为^会匹配整个字符串,而matches才是不必要的),或者您可以创建Pattern,然后使用:

if (pattern.matcher(text).lookingAt())

当然,目前尚不清楚为什么在这里使用正则表达式,因为可以使用:
if (text.startsWith("0"))

10-08 17:28