我是否误解了有关 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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
matches尝试将模式与整个输入字符串进行匹配...并且您的输入字符串不仅仅是“字符串开头后跟 0”。
要么您需要"0.*"(正是^不必要的,因为matches将匹配整个字符串),要么您可以创建一个Pattern然后使用:
if (pattern.matcher(text).lookingAt())
Run Code Online (Sandbox Code Playgroud)
当然,不清楚为什么你在这里使用正则表达式,因为你可以使用:
if (text.startsWith("0"))
Run Code Online (Sandbox Code Playgroud)