Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

예제가 있는 Java의 Matcher quoteReplacement(String s) 메서드

<시간/>

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); }}

출력

샘플 데이터