Java replaceAll()방법 오류 보고 Illegal group reference

더 읽 기
replaceAll(regex,replacement)함수 입 니 다.첫 번 째 매개 변 수 는 정규 표현 식 을 지원 하기 때문에 replacement 에'$'가 나타 나 면$1$2 의 그룹 모드 에 따라 일치 합 니 다.컴 파일 러 가'$'뒤꿈치 가 정수 가 아 닌 것 을 발견 하면'불법 그룹 참조'의 이상 을 던 집 니 다.
 
예 를 들 어 다음 코드 는 오 류 를 보고 할 수 있 습 니 다.
public class Test {
	public static void main(String[] args) {
		String str = "123ABC456";
		String re = "#7T$/#";
		System.out.println(str.replaceAll("ABC", re));
	}
}

 
오류 보고 내용:
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);

 
 
특수 문 자 를 특정 문자 로 바 꾸 고 수신 자 에 게 맡 깁 니 다.예 를 들 어$를{ZF4}}으로 바 꿉 니 다.물론 한 회사 라면 괜 찮 습 니 다.
String[] strArr = ex.split("\\$");
StringBuffer sb = new StringBuffer();
for(int i=0;i 
  

 

ITEYE :http://cuisuqiang.iteye.com

, :http://www.javacui.com

 

좋은 웹페이지 즐겨찾기