Java處理正則表達式特殊字符轉義 轉


正則需要轉義字符:'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'
 
異常現象: java.util.regex.PatternSyntaxException: Dangling meta. character '*' near index 0
解決方法: 對特殊字符加\\轉義即可。
 
注意:雖然使用[]在部分條件下也可以,但是在對於(、[、{范圍邊界開始符不匹配的情況下會報如下:
異常現象:java.util.regex.PatternSyntaxException: Illegal repetition near index 50
 
Java過濾正則表達式特殊字代碼如下(注意:\\需要第一個替換,否則replace方法替換時會有邏輯bug)
 
 1     /**
 2      * 轉義正則特殊字符 ($()*+.[]?\^{}
 3      * \\需要第一個替換,否則replace方法替換時會有邏輯bug
 4      */
 5     public static String makeQueryStringAllRegExp(String str) {
 6         if(StringUtils.isBlank(str)){
 7             return str;
 8         }
 9 
10         return str.replace("\\", "\\\\").replace("*", "\\*")
11                 .replace("+", "\\+").replace("|", "\\|")
12                 .replace("{", "\\{").replace("}", "\\}")
13                 .replace("(", "\\(").replace(")", "\\)")
14                 .replace("^", "\\^").replace("$", "\\$")
15                 .replace("[", "\\[").replace("]", "\\]")
16                 .replace("?", "\\?").replace(",", "\\,")
17                 .replace(".", "\\.").replace("&", "\\&");
18     }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM