Java正則表達(dá)式處理特殊字符轉(zhuǎn)義的方法
正則需要轉(zhuǎn)義字符
'$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'
異?,F(xiàn)象:
java.util.regex.PatternSyntaxException: Dangling meta. character '*' near index 0
解決方法
對(duì)特殊字符加\\轉(zhuǎn)義即可。
注意:雖然使用[]在部分條件下也可以,但是在對(duì)于(、[、{范圍邊界開始符不匹配的情況下會(huì)報(bào)如下:
異常現(xiàn)象
java.util.regex.PatternSyntaxException: Illegal repetition near index 50
Java過濾正則表達(dá)式特殊字代碼如下(注意:\\需要第一個(gè)替換,否則replace方法替換時(shí)會(huì)有邏輯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)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
Java代碼的三根頂梁柱:循環(huán)結(jié)構(gòu)
這篇文章主要介紹了JAVA 循環(huán)結(jié)構(gòu)的相關(guān)資料,文中講解的非常細(xì)致,示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2021-08-08
Java的無參構(gòu)造函數(shù)用法實(shí)例分析
這篇文章主要介紹了Java的無參構(gòu)造函數(shù)用法,結(jié)合實(shí)例形式分析了java無參構(gòu)造函數(shù)基本原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09
詳解Spring Boot 2.0.2+Ajax解決跨域請求的問題
這篇文章主要介紹了詳解Spring Boot 2.0.2+Ajax解決跨域請求的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
springboot中關(guān)于自動(dòng)建表,無法更新字段的問題
這篇文章主要介紹了springboot中關(guān)于自動(dòng)建表,無法更新字段的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java?JWT實(shí)現(xiàn)跨域身份驗(yàn)證方法詳解
JWT(JSON?Web?Token)是目前流行的跨域認(rèn)證解決方案,是一個(gè)開放標(biāo)準(zhǔn)(RFC?7519),它定義了一種緊湊的、自包含的方式,用于作為JSON對(duì)象在各方之間安全地傳輸信息。本文將介紹JWT如何實(shí)現(xiàn)跨域身份驗(yàn)證,感興趣的可以學(xué)習(xí)一下2022-01-01
詳解Java String字符串獲取每一個(gè)字符及常用方法
這篇文章主要介紹了詳解Java String字符串獲取每一個(gè)字符及常用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

