我正在使用Java,我需要验证这样的数字序列:9999/9999
。
我尝试使用此正则表达式\\d{4}\\\\d{4}
,但我false
获得了matches()
。
我的代码:
Pattern regex = Pattern.compile("\\d{4}\\\\d{4}");
if (!regex.matcher(mySequence).matches()) {
System.out.println("invalid");
} else {
System.out.println("valid");
}
有人可以帮助我吗?
答案 0 :(得分:7)
正则表达式模式试图匹配反斜杠而不是正斜杠字符。你需要使用:
Pattern regex = Pattern.compile("\\d{4}/\\d{4}")
答案 1 :(得分:7)
Pattern regex = Pattern.compile("\\d{4}\\\\d{4}");
应该是
Pattern regex = Pattern.compile("\\d{4}/\\d{4}");
答案 2 :(得分: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}");