我开始使用Java正则表达式,我发现我必须编写这样的模式(人为的例子):
C:\\\\windows\\\\system\\d+
匹配
C:\windows\system32
有没有办法使用java正则表达而没有大量的反斜杠?
答案 0 :(得分:1)
使用Pattern.quote(String s)
(点击查看文档)
它将传递的String中的所有元字符视为文字字符(但您仍然必须在构造字符串文字时转义反斜杠)。这使您可以键入\\
而不是\\\\
来表示正则表达式模式中的实际/文字\
。但这也意味着任何其他特殊字符也将按字面解释(例如示例中的\d+
)。
但在您的示例中,您可以使用:
Pattern.quote("C:\\windows\\system") + "\\d+";
用这个来测试:System.out.println("C:\\windows\\system32".matches(Pattern.quote("C:\\windows\\system") + "\\d+"));