这个正则表达式^\d+(?:[\.\,]\d+)?$
如何与Java一起使用。
input.matches("^\\d+(?:[\\.\\,]\\d+)?$"); // Redundant character escape
答案 0 :(得分:1)
你的表情很好。注意:使用matches
;隐含地在开头添加^
,在模式结尾添加$
。此外,您不需要转义字符类中的字符。
input.matches("\\d+(?:[,.]\\d+)?");
答案 1 :(得分:1)
您的代码执行正常
public static void main(String[] args) throws Exception {
String input = "123";
System.out.println(input.matches("^\\d+(?:[\\.\\,]\\d+)?$"));
input = "123.123";
System.out.println(input.matches("^\\d+(?:[\\.\\,]\\d+)?$"));
input = "123,123";
System.out.println(input.matches("^\\d+(?:[\\.\\,]\\d+)?$"));
input = "123..123";
System.out.println(input.matches("^\\d+(?:[\\.\\,]\\d+)?$"));
}
打印
true
true
true
false
根据regex101,您的匹配字符串将以一个或多个数字开头,后跟一个非捕获组,一次或根本不发生,包含.
或,
,字面意思,和一个或多个数字,然后结束。
这就是你所拥有的,这就是匹配的东西。