Matcher 클래스의 appendReplacement() 메서드는 StringBuffer 객체와 String(대체 문자열)을 매개변수로 받아 StringBuffer 객체에 입력 데이터를 추가하여 일치하는 내용을 대체 문자열로 교체합니다.
내부적으로 이 메서드는 입력 문자열에서 각 문자를 읽고 문자열 버퍼를 추가합니다. 일치가 발생할 때마다 문자열의 일치하는 내용 부분 대신 대체 문자열을 버퍼에 추가하고 일치하는 하위 문자열의 다음 위치에서 진행합니다.
이 메소드에 대체 문자열을 전달하는 동안 "/" 또는 "$"를 사용하면 일반 문자로 간주되지 않고 예외가 발생합니다. -
예시 1
import java.util.regex.Matcher;import java.util.regex.Pattern;public class QuoteReplacement { public static void main(String[] args) { String str ="이것은 입니다 예 HTML 스크립트.
"; //볼드 태그의 내용과 일치하는 정규식 String regex ="(\\S+)"; System.out.println("입력 문자열:\n"+str); //패턴 객체 생성 Pattern pattern =Pattern.compile(regex); // String Matcher에서 컴파일된 패턴 매칭 matcher =pattern.matcher(str); //빈 문자열 버퍼 생성 StringBuffer sb =new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, "sampledata$" ); //매처.quoteReplacement("Bo$ld/Data$")); } matcher.appendTail(sb); System.out.println("StringBuffer의 내용:\n"+ sb.toString() ); }}
출력
입력 문자열:
이것은 예 HTML 스크립트의 예제입니다.
스레드 "main"의 예외 java.lang.IllegalArgumentException:잘못된 그룹 참조:OCTOBER.matcher.QuoteReplacement.main(QuoteReplacement.java:18)의 java.util.regex.Matcher.appendReplacement(알 수 없는 소스)에서 그룹 인덱스가 누락되었습니다.사전>Matcher 클래스의 인용부호 대체 메소드는 문자열 값을 받아들이고 리터럴 대체 문자열을 리턴합니다. 즉, 문자 / 및 $는 주어진 문자열에서 무시되며 결과는 appendReplacement()에 대한 매개변수로 사용될 수 있습니다. 방법.
예시 2
import java.util.regex.Matcher;import java.util.regex.Pattern;public class QuoteReplacement { public static void main(String[] args) { String str ="이것은 입니다 예 HTML 스크립트.
"; //볼드 태그의 내용과 일치하는 정규식 String regex ="(\\S+)"; System.out.println("입력 문자열:\n"+str); //패턴 객체 생성 Pattern pattern =Pattern.compile(regex); // String Matcher에서 컴파일된 패턴 매칭 matcher =pattern.matcher(str); //빈 문자열 버퍼 생성 StringBuffer sb =new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, Matcher.quoteReplacement("Bo$ld/Data$")); } matcher.appendTail(sb); System.out.println("StringBuffer의 내용:\n"+ sb.toString() ); }}출력
입력 문자열:이것은 예 HTML 스크립트입니다.
StringBuffer의 내용:이 Bo$ld/Data$ 및 Bo$ld/Data$ HTML Bo$ld/Data$.
예시 3
import java.util.regex.Matcher;import java.util.regex.Pattern;public class QuoteReplacementExample { public static void main(String[] args) { String input ="샘플 텍스트입니다"; 문자열 정규식 ="[#]"; //패턴 객체 생성 Pattern pattern =Pattern.compile(regex); // String Matcher에서 컴파일된 패턴 매칭 matcher =pattern.matcher(input); //빈 문자열 버퍼 생성 String str =Matcher.quoteReplacement("sampledata"); System.out.println(str); }}출력
샘플 데이터