我正在尝试创建一个正则表达式匹配器,但它没有按预期工作。
String input = "// source C:\\path\\to\\folder";
System.out.println(Pattern.matches("//\\s*source\\s+[a-zA-Z]:(\\[a-zA-Z0-9_-]+)+", input));
它返回 false
但它应该通过。该正则表达式有什么问题?
最佳答案
反斜杠。这就是问题所在。
System.out.println(Pattern.matches("//\\s*source\\s+[a-zA-Z]:(\\\\[a-zA-Z0-9_-]+)+", input));
^^
在正则表达式中,反斜杠必须转义——反斜杠。那是两个反斜杠。再加上 Java 转义,您必须编写四个反斜杠来匹配一个。
关于java - 带反斜杠的输入与正则表达式不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36202644/