Java正則表達式處理特殊字符轉(zhuǎn)義的方法
正則需要轉(zhuǎn)義字符
'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'
異?,F(xiàn)象:
java.util.regex.PatternSyntaxException: Dangling meta. character '*' near index 0
解決方法
對特殊字符加\\轉(zhuǎn)義即可。
注意:雖然使用[]在部分條件下也可以,但是在對于(、[、{范圍邊界開始符不匹配的情況下會報如下:
異?,F(xiàn)象
java.util.regex.PatternSyntaxException: Illegal repetition near index 50
Java過濾正則表達式特殊字代碼如下(注意:\\需要第一個替換,否則replace方法替換時會有邏輯bug)
/** * 轉(zhuǎn)義正則特殊字符 ($()*+.[]?\^{},|) * * @param keyword * @return */ public static String escapeExprSpecialWord(String keyword) { if (StringUtils.isNotBlank(keyword)) { String[] fbsArr = { "\\", "$", "(", ")", "*", "+", ".", "[", "]", "?", "^", "{", "}", "|" }; for (String key : fbsArr) { if (keyword.contains(key)) { keyword = keyword.replace(key, "\\" + key); } } } return keyword; }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實體字段不一致問題處理方法
這篇文章主要介紹了MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實體字段不一致問題處理方法,需要的朋友可以參考下2017-05-05詳解servlet調(diào)用的幾種簡單方式總結(jié)
這篇文章主要介紹了詳解servlet調(diào)用的幾種簡單方式總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01Mybatis使用on duplicate key update的實現(xiàn)操作
本文主要介紹了Mybatis使用on duplicate key update的實現(xiàn)操作,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07java的SimpleDateFormat線程不安全的幾種解決方案
但我們知道SimpleDateFormat是線程不安全的,處理時要特別小心,要加鎖或者不能定義為static,要在方法內(nèi)new出對象,再進行格式化,本文就介紹了幾種方法,感興趣的可以了解一下2021-08-08