3

我正在使用 Java,我需要验证这样的数字序列:9999/9999.

我尝试使用这个正则表达式\\d{4}\\\\d{4},但我得到falsematches().

我的代码:

    Pattern regex = Pattern.compile("\\d{4}\\\\d{4}");

    if (!regex.matcher(mySequence).matches()) {
        System.out.println("invalid");
    } else {
        System.out.println("valid");
    }

任何人都可以帮助我吗?

4

3 回答 3

7

正则表达式模式试图匹配反斜杠而不是正斜杠字符。你需要使用:

Pattern regex = Pattern.compile("\\d{4}/\\d{4}")
于 2013-05-21T13:55:03.433 回答
7
Pattern regex = Pattern.compile("\\d{4}\\\\d{4}");

应该

Pattern regex = Pattern.compile("\\d{4}/\\d{4}");
于 2013-05-21T13:55:30.973 回答
2

将您的模式更改为:

Pattern regex = Pattern.compile("\\d{4}\\\\\\d{4}");

用于匹配"9999\\9999"(实际值:9999\9999)(在 java 中,您需要在声明时转义String

或者,如果您想匹配"9999/9999",则上述解决方案可以正常工作:

Pattern regex = Pattern.compile("\\d{4}/\\d{4}");
于 2013-05-21T13:58:42.870 回答