我是否误解了有关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"))