我使用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