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

Método quoteReplacement (String s) con ejemplo en Java

appendReplacement()Los métodos de Matcher aceptan un objeto StringBuffer y una cadena (cadena de reemplazo) como parámetros, y luego adjuntan los datos de entrada al objeto StringBuffer y reemplazan el contenido coincidente con la cadena de reemplazo.

Dentro, este método lee cada carácter de la cadena de entrada y lo agrega al StringBuffer, y cada vez que ocurre una coincidencia, reemplaza la cadena en lugar de agregar la parte coincidente de la cadena al缓冲区, luego continúa desde la posición siguiente del subcadena coincidente.

Si se utiliza "}} /"o " $" se pasan a este método, no se considerarán caracteres normales y se producirá una excepción-

Ejemplo1

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> un <b>ejemplo</b> HTML <b>script</b>.</p>";
      //La expresión regular se utiliza para coincidir con el contenido de la etiqueta en negrita
      String regex = "<b>(\\S+)</b>";
      System.out.println("Cadena de entrada: \n")+str);
      //Crear un objeto de patrón
      Pattern pattern = Pattern.compile(regex);
      //Coincidir con el patrón compilado en la cadena
      Matcher matcher = pattern.matcher(str);
      //Crear un búfer de cadenas vacío
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, "sampledata$" );
         //Matcher.quoteReplacement("Bo$ld";/Data$"));
      }
      matcher.appendTail(sb);
      System.out.println("Contenido del StringBuffer: \n")+ sb.toString());
   }
}

Resultados de salida

Cadena de entrada:<p>This <b>is</b> un <b>ejemplo</b> HTML <b>script</b>.</p>Exception en el hilo "main" java.lang.IllegalArgumentException: Referencia de grupo ilegal: falta el índice del grupo
   at java.util.regex.Matcher.appendReplacement(Unknown Source)
   at OCTOBER.matcher.QuoteReplacement.main(QuoteReplacement.java:18)

El método quote Replacement de la clase Matcher toma un valor de cadena y devuelve una cadena de reemplazo literal. Es decir, los caracteres/y $ se ignoran, el resultado se puede usar comoappendReplacement()los parámetros del método.

Ejemplo2

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> un <b>ejemplo</b> HTML <b>script</b>.</p>";
      //La expresión regular se utiliza para coincidir con el contenido de la etiqueta en negrita
      String regex = "<b>(\\S+)</b>";
      System.out.println("Cadena de entrada: \n")+str);
      //Crear un objeto de patrón
      Pattern pattern = Pattern.compile(regex);
      //Coincidir con el patrón compilado en la cadena
      Matcher matcher = pattern.matcher(str);
      //Crear un búfer de cadenas vacío
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, Matcher.quoteReplacement("Bo$ld"));/Data$"));
      }
      matcher.appendTail(sb);
      System.out.println("Contenido del StringBuffer: \n")+ sb.toString());
   }
}

Resultados de salida

Cadena de entrada:
<p>This <b>is</b> un <b>ejemplo</b> HTML <b>script</b>.</p>
Contenido del StringBuffer:
<p>This Bo$ld/Data$ an Bo$ld/Data$ HTML Bo$ld/Data$.</p>

Ejemplo3

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 = "[#]";
      //Crear un objeto de patrón
      Pattern pattern = Pattern.compile(regex);
      //Coincidir con el patrón compilado en la cadena
      Matcher matcher = pattern.matcher(input);
      //Crear un búfer de cadenas vacío
      String str = Matcher.quoteReplacement("sampledata");
      System.out.println(str);
   }
}

Resultados de salida

sampledata