我使用Java正则表达式开始,我发现我写的模式是这样的(人为的例子):禁用字符串转义(反斜杠地狱)
C:\\\\windows\\\\system\\d+
匹配
C:\windows\system32
有没有办法使用java正则表达式没有疯狂的反斜杠?
我使用Java正则表达式开始,我发现我写的模式是这样的(人为的例子):禁用字符串转义(反斜杠地狱)
C:\\\\windows\\\\system\\d+
匹配
C:\windows\system32
有没有办法使用java正则表达式没有疯狂的反斜杠?
使用Pattern.quote(String s)
(点击文档)
它把所有的元字符传递的字符串为文字字符(但仍必须逃避建设一个字符串的反斜杠)。这可让您键入\\
而不是\\\\
来表示正则表达式模式中的实际/文字\
。但是这也意味着任何其他特殊字符也会被字面解释(例如在您的示例中为\d+
)。
但在你的榜样,您可以使用: Pattern.quote("C:\\windows\\system") + "\\d+";
测试它这样:System.out.println("C:\\windows\\system32".matches(Pattern.quote("C:\\windows\\system") + "\\d+"));
没有,没有 –
你可以将它们保存在一个单独的文件,然后阅读,在(可能作为资源)。 – yshavit