如何匹配Java中的反斜杠?

时间:2014-10-20 20:42:23

标签: java regex

我想弄清楚一个字符串是否包含两个斜杠。正斜杠很容易检查

String test = "12/13/2013";
boolean slash = test.matches("\\d+\\/\\d+\\/\\d+");

但是如何检查反斜杠

String test = "12\13\2013";
boolean slash = test.matches("\\d+\\\\\\d+\\\\\\d+"); 

以上不承认吗?我也试过("\\d+\\\\d+\\\\d+")

1 个答案:

答案 0 :(得分:7)

你正确地逃脱了你的正则表达式,但你没有正确地逃避你的测试字符串。尝试

String test = "12\\13\\2013";

有趣的是,您的代码String test = "12\13\2013";会进行编译,因为您无意中通过八进制转义指定了字符,这些字符由\000的反斜杠后跟八进制数指定通过\377。即\13\201是八进制转义。