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

Java中具有示例的Matcher quoteReplacement(String s)方法

appendReplacement()Les méthodes de la classe Matcher acceptent un objet StringBuffer et une chaîne (chaîne de remplacement) en tant que paramètres, puis ajoutent les données d'entrée à l'objet StringBuffer et remplacent le contenu correspondant par la chaîne de remplacement.

À l'intérieur, cette méthode lit chaque caractère de la chaîne d'entrée et l'ajoute au tampon de chaîne, chaque fois qu'il y a une correspondance, elle remplace la chaîne au lieu d'ajouter la partie correspondante de la chaîne au tampon, puis continue à partir de la position suivante du sous-champ correspondant.

Si vous utilisez “}} /” ou “ $” lorsque la chaîne de remplacement est passée à cette méthode, elles ne seront pas considérées comme des caractères ordinaires et une exception se produira-

Exemple1

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>exemple</b> HTML <b>script</b>.</p>";
      //L'expression régulière est utilisée pour correspondre au contenu des balises en gras
      String regex = "<b>(\\S+)</b>";
      System.out.println("Chaîne d'entrée: \n")+str);
      //Créer un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Concorder une chaîne avec un modèle compilé
      Matcher matcher = pattern.matcher(str);
      //Créer un tampon de chaîne vide
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, "sampledata$"));
         //Matcher.quoteReplacement("Bo$ld"));/Data$"));
      }
      matcher.appendTail(sb);
      System.out.println("Contenu du StringBuffer: \n")+ sb.toString());
   }
}

Résultat de la sortie

Chaîne d'entrée:<p>This <b>is</b> un <b>exemple</b> HTML <b>script</b>.</p>Exception dans le thread "main" java.lang.IllegalArgumentException: Référence de groupe illicite : l'index du groupe manque
   at java.util.regex.Matcher.appendReplacement(Unknown Source)
   at OCTOBER.matcher.QuoteReplacement.main(QuoteReplacement.java:18)

La méthode quote Replacement de la classe Matcher accepte une valeur de chaîne et retourne une chaîne de remplacement littérale. C'est-à-dire, les caractères/et $ sont ignorés, le résultat peut être utilisé commeappendReplacement()paramètres de la méthode.

Exemple2

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>exemple</b> HTML <b>script</b>.</p>";
      //L'expression régulière est utilisée pour correspondre au contenu des balises en gras
      String regex = "<b>(\\S+)</b>";
      System.out.println("Chaîne d'entrée: \n")+str);
      //Créer un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Concorder une chaîne avec un modèle compilé
      Matcher matcher = pattern.matcher(str);
      //Créer un tampon de chaîne vide
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, Matcher.quoteReplacement("Bo$ld"));/Data$"));
      }
      matcher.appendTail(sb);
      System.out.println("Contenu du StringBuffer: \n")+ sb.toString());
   }
}

Résultat de la sortie

Chaîne d'entrée:
<p>This <b>is</b> un <b>exemple</b> HTML <b>script</b>.</p>
Contenu du StringBuffer:
<p>This Bo$ld/Data$ an Bo$ld/Data$ HTML Bo$ld/Data$.</p>

Exemple3

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 = "[#]";
      //Créer un objet modèle
      Pattern pattern = Pattern.compile(regex);
      //Concorder une chaîne avec un modèle compilé
      Matcher matcher = pattern.matcher(input);
      //Créer un tampon de chaîne vide
      String str = Matcher.quoteReplacement("sampledata");
      System.out.println(str);
   }
}

Résultat de la sortie

sampledata