翻译Java的正则表达式

时间:2014-06-12 03:24:01

标签: java regex

这个正则表达式^\d+(?:[\.\,]\d+)?$如何与Java一起使用。

input.matches("^\\d+(?:[\\.\\,]\\d+)?$"); // Redundant character escape

2 个答案:

答案 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,您的匹配字符串将以一个或多个数字开头,后跟一个非捕获组,一次或根本不发生,包含., ,字面意思,和一个或多个数字,然后结束。

这就是你所拥有的,这就是匹配的东西。