我是不是误解了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);
}
}
}
5条答案
按热度按时间vdzxcuhz1#
检查一下这个代码…应该可以。
rm5edbpk2#
这是您应该使用的模式:
^0.*
另外,为什么不使用startswith(“0”)——简单得多
x759pob23#
matches
尝试将模式与整个输入字符串匹配。。。你的输入字符串不仅仅是“字符串的开头后跟0”。要么你需要
"0.*"
(the)^
是不必要的,因为matches
或者你可以创建一个Pattern
然后使用:当然,不清楚为什么在这里使用regex,因为您可以使用:
aamkag614#
String.match
想要匹配整个String
,还有你的正则表达式^0
不。相反,你需要一个正则表达式,比如:
0.*
,表示“字符串以0开头,后跟零个或多个字符”。或者,根据你的需要,0\d*
,这意味着“字符串以0开头,后跟零个或多个数字”,这就是示例输入的样子。0sgqnhkj5#
此正则表达式将匹配带前导零的数字,但不匹配“0”:/^0+[1-9]/