Java replaceAll()方法報錯Illegal group reference的解決辦法
前言
replaceAll(regex, replacement)函數(shù),由于第一個參數(shù)支持正則表達式,replacement中出現(xiàn)“$”,會按照$1$2的分組模式進行匹配。
當(dāng)編譯器發(fā)現(xiàn)“$”后跟的不是整數(shù)的時候,就會拋出“非法的組引用”的異常。
例如,如下代碼會報錯:
public class Test {
public static void main(String[] args) {
String str = "123ABC456";
String re = "#7T$/#";
System.out.println(str.replaceAll("ABC", re));
}
}
報錯內(nèi)容:
Exception in thread "main" java.lang.IllegalArgumentException: Illegal group reference
at java.util.regex.Matcher.appendReplacement(Unknown Source)
at java.util.regex.Matcher.replaceAll(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at cn.com.vogue.Test.main(Test.java:6)
解決辦法:
一個是JDK提供的方法,對特殊字符進行處理:
對要替換的字符做處理代碼如下:
re = java.util.regex.Matcher.quoteReplacement(re);
把特殊字符轉(zhuǎn)為特定字符,然后交給接收方處理:
例如將$替換為{ZF4}},當(dāng)然,如果是一家公司做還可以:
String[] strArr = ex.split("\\$");
StringBuffer sb = new StringBuffer();
for(int i=0;i<strArr.length-1;i++){
sb = sb.append(strArr[i]).append("{ZF4}");
}
sb.append(strArr[strArr.length-1]);
ex = sb.toString();
總結(jié)
到此這篇關(guān)于Java replaceAll()方法報錯Illegal group reference的解決辦法就介紹到這了,更多相關(guān)Java replaceAll()方法報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- javascript中使用replaceAll()函數(shù)實現(xiàn)字符替換的方法
- Javascript中正則表達式的全局匹配模式分析
- Javascript中使用exec進行正則表達式全局匹配時的注意事項
- JavaScript實現(xiàn)的字符串replaceAll函數(shù)代碼分享
- javascript實現(xiàn)全局匹配并替換的方法
- java中replaceAll替換圓括號實例代碼
- Java中replace與replaceAll的區(qū)別與測試
- java字符串的替換replace、replaceAll、replaceFirst的區(qū)別說明
- String.replaceAll方法詳析(正則妙用)
- 淺談Java中replace與replaceAll區(qū)別
- Java中replace、replaceAll和replaceFirst函數(shù)的用法小結(jié)
- 淺談java中replace()和replaceAll()的區(qū)別
- jQuery中replaceAll()方法用法實例
- js使用正則實現(xiàn)ReplaceAll全部替換的方法
- js字符串替換所有的指定字符或文字(推薦replaceAll方法)
- JS中實現(xiàn)replaceAll的方法(實例代碼)
- js replace 與replaceall實例用法詳解
- Flex 字符串ReplaceAll使用說明
- JavaScript中使用replace結(jié)合正則實現(xiàn)replaceAll的效果
相關(guān)文章
如何修改logback.xml配置文件在resource以外的位置
這篇文章主要介紹了如何修改logback.xml配置文件在resource以外的位置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
詳解Maven settings.xml配置(指定本地倉庫、阿里云鏡像設(shè)置)
這篇文章主要介紹了詳解Maven settings.xml配置(指定本地倉庫、阿里云鏡像設(shè)置),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
logback高效狀態(tài)管理器StatusManager源碼解析
這篇文章主要為大家介紹了logback高效狀態(tài)管理器StatusManager源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
使用SpringBoot+Prometheus+Grafana實現(xiàn)可視化監(jiān)控
本文主要給大家介紹了如何使用Spring?actuator+監(jiān)控組件prometheus+數(shù)據(jù)可視化組件grafana來實現(xiàn)對Spring?Boot應(yīng)用的可視化監(jiān)控,文中有詳細(xì)的代碼供大家參考,具有一定的參考價值,需要的朋友可以參考下2024-02-02
Windows下安裝ElasticSearch的方法(圖文)
這篇文章主要介紹了Windows下安裝ElasticSearch的方法(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
java實現(xiàn)輕量型http代理服務(wù)器示例
這篇文章主要介紹了java實現(xiàn)輕量型http代理服務(wù)器示例,需要的朋友可以參考下2014-04-04
基于創(chuàng)建Web項目運行時出錯的解決方法(必看篇)
下面小編就為大家?guī)硪黄趧?chuàng)建Web項目運行時出錯的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

