14
有沒有辦法在正則表達式中轉義(或保護)特殊字符?正則表達式:如何避免反斜槓和特殊字符?
我想什麼做的是創建一個簡單的正則表達式測試儀:
import java.util.regex.*;
class TestRegex {
public static void main(String ... args) {
System.out.printf("%s ~= %s ? %s %n" , args[0], args[1], Pattern.matches(args[0], args[1]));
}
}
偉大的工程之前測試我的模式插件他們進入程序:
$java TestRegex "\d" 1
\d ~= 1 ? true
$java TestRegex "\d" 12
\d ~= 12 ? false
$java TestRegex "\d+" 12
\d+ ~= 12 ? true
$java TestRegex "\d+" a12
\d+ ~= a12 ? false
$java TestRegex "\d+" ""
\d+ ~= ? false
下我做的事情是在我的程序中使用這種模式,但每次我必須手動將其轉移:
Pattern p = Pattern.compile(/*copy pasted regex here */);
在此示例中,替換爲:\d
和\\d
。過了一會兒,這變得非常刺激。
問:如何自動轉義這些特殊字符?
我得到:`異常線程「main」 java.util.regex.PatternSyntaxException:意外內部錯誤接近指數1 `http://pastebin.com/aEWSibXv – OscarRyz 2011-01-11 03:29:19