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

Java-Methode Matcher quoteReplacement(String s) mit Beispiel

appendReplacement()Die Methoden der Matcher-Klasse akzeptieren ein StringBuffer-Objekt und einen String (Ersatzzeichenkette) als Parameter und fügen die Eingabedaten dem StringBuffer-Objekt hinzu, indem sie den zu ersetzen Inhalt durch die Ersatzzeichenkette ersetzen.

Innerhalb dieses Verfahrens liest es jeden Zeichen der Eingabezeichenkette und fügt es in den String-Puffer ein. Bei jeder Übereinstimmung ersetzt es den String anstatt den übereinstimmenden Teils der Zeichenkette in den Puffer einzufügen und fährt von der nächsten Position des Übereinstimmungstextes fort.

wenn "}} /" oder " $", wird der String an diese Methode übergeben, dann werden sie nicht als reguläre Zeichen betrachtet und es wird eine Ausnahme ausgelöst-

例子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>";
      //Der reguläre Ausdruck wird verwendet, um den Inhalt der fettgedruckten Tags zu matchen
      String regex = "<b>(\\S+)</b>";
      System.out.println("Eingabestring: \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("Inhalt der StringBuffer: \n")+ sb.toString());
   }
}

输出结果

Eingabestring:<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)

Die Methode quoteReplacement der Matcher-Klasse akzeptiert einen String-Wert und gibt einen textuellen Ersatz zurück. Das bedeutet, dass die Zeichen in der gegebenen Zeichenfolge/und $ werden ignoriert, das Ergebnis kann verwendet werdenappendReplacement()Parameter der Methode.

例子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>";
      //Der reguläre Ausdruck wird verwendet, um den Inhalt der fettgedruckten Tags zu matchen
      String regex = "<b>(\\S+)</b>";
      System.out.println("Eingabestring: \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("Inhalt der StringBuffer: \n")+ sb.toString());
   }
}

输出结果

Input string:
<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>
Contents of the 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