English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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

appendReplacement()Matcher 클래스의 메서드는 StringBuffer 객체와 String(대체 문자열)을 매개변수로 받아서 입력 데이터를 StringBuffer 객체에 추가하고, 대체 문자열로 일치하는 내용을 대체합니다.

내부에서 이 방법은 입력 문자열에서 각 문자를 읽고 String 버퍼에 추가하며, 일치할 때마다 문자열 대신 일치하는 내용 부분을 버퍼에 추가하지 않고 대체합니다. 그런 다음 일치하는 부분의 다음 위치에서 계속합니다.

만약 "}} /" 또는 " $"를 대체 문자열로 전달하면 이들은 일반 문자로 간주되지 않으며 예외가 발생합니다-

예제1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class QuoteReplacement {
   public static void main(String[] args) {
      String str = " <p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>";
      //정규 표현식은 히트 레이블의 내용을 매칭합니다
      String regex = "<b>(\\S+)</b>";
      System.out.println("입력 문자열: \n")+str);
      //패턴 객체를 생성합니다
      Pattern pattern = Pattern.compile(regex);
      //문자열에서 컴파일된 패턴과 일치시킵니다
      Matcher matcher = pattern.matcher(str);
      //비어 있는 문자열 버퍼를 생성합니다
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, "sampledata$"));
         //Matcher.quoteReplacement("Bo$ld"));/Data$"));
      }
      matcher.appendTail(sb);
      System.out.println("StringBuffer의 내용: \n")+ sb.toString());
   }
}

출력 결과

Input string:<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>Exception in thread "main" java.lang.IllegalArgumentException: Illegal group reference: group index is missing
   at java.util.regex.Matcher.appendReplacement(Unknown Source)
   at OCTOBER.matcher.QuoteReplacement.main(QuoteReplacement.java:18)

Matcher 클래스의 quote Replacement 메서드는 문자열 값을 받아 들여 텍스트 대체 문자열을 반환합니다. 즉, 주어진 문자열의 문자/또한 $는 무시되며, 결과는 사용할 수 있습니다appendReplacement()메서드의 매개변수.

예제2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class QuoteReplacement {
   public static void main(String[] args) {
      String str = "<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>";
      //정규 표현식은 히트 레이블의 내용을 매칭합니다
      String regex = "<b>(\\S+)</b>";
      System.out.println("입력 문자열: \n")+str);
      //패턴 객체를 생성합니다
      Pattern pattern = Pattern.compile(regex);
      //문자열에서 컴파일된 패턴과 일치시킵니다
      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());
   }
}

출력 결과

입력 문자열:
<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>
StringBuffer의 내용:
<p>This Bo$ld/Data$ an Bo$ld/Data$ HTML Bo$ld/Data$.</p>

예제3

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class QuoteReplacementExample {
   public static void main(String[] args) {
      String input = "This is sample text";
      String regex = "[#]";
      //패턴 객체를 생성합니다
      Pattern pattern = Pattern.compile(regex);
      //문자열에서 컴파일된 패턴과 일치시킵니다
      Matcher matcher = pattern.matcher(input);
      //비어 있는 문자열 버퍼를 생성합니다
      String str = Matcher.quoteReplacement("sampledata");
      System.out.println(str);
   }
}

출력 결과

sampledata