English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die java.util.regex.Matcher-Klasse stellt einen Motor für verschiedene Übereinstimmungsoperationen dar. Diese Klasse hat keinen Konstruktor und kann mit dem matchs()-Methoden der Klasse java.util.regex.Pattern erstellt werden/Erhalten Sie ein Objekt dieser Klasse.
Die appendReplacement() -Methode dieser Klasse (Matcher) akzeptiert ein StringBuffer-Objekt und einen String (Ersetzungstext) als Parameter und fügt das Eingabedaten an das StringBuffer-Objekt an, wobei der zu ersetzende Inhalt durch den Ersetzungstext ersetzt wird.
Intern liest dieser Methodenaufruf jeden Zeichen des Eingabestrings und fügt es dem String-Puffer hinzu. Bei jeder Übereinstimmung wird der String anstatt des übereinstimmenden Teils des Strings in den Puffer eingefügt und der Suchvorgang wird vom nächsten Zeichen fortgesetzt.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class appendReplacementExample { public static void main(String[] args) { String str = "<p>This <b>is</b> ein <b>Beispiel</b>HTML <b>script</b>.</p>"; //Regulärer Ausdruck zum Auswählen des Inhalts der fett gedruckten Tags String regex = "<b>(\\S+)</b>"; System.out.println("Eingabestring: \n"+str); //Erstellung eines Muster-Objekts Pattern pattern = Pattern.compile(regex); //Überprüfen des kompilierten Musters im String Matcher matcher = pattern.matcher(str); //Erstellen eines leeren String-Puffers StringBuffer sb = new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, "BoldData"); } matcher.appendTail(sb);} System.out.println("Inhalte des StringBuffer: \n");+ sb.toString()); } }
Ausgaberesultat
Eingabezeichenkette: <p>Dieser <b>ist</b> ein <b>Beispiel</b> HTML <b>script</b>.</p> Inhalte des StringBuffer: Dieser Fett-Daten ein Fett-Daten HTML Fett-Daten. <p>Dieser Fett-Daten ein Fett-Daten HTML Fett-Daten.</p>
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class appendReplacementExample { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Geben Sie den Eingabetext ein: "); String input = sc.nextLine(); String regex = "[#$&+@=|<>-]"; //Erstellung eines Muster-Objekts Pattern pattern = Pattern.compile(regex); //Erstellung eines Matcher-Objekts Matcher matcher = pattern.matcher(input); int count = 0; StringBuffer buffer = new StringBuffer(); System.out.println("Entfernung des speziellen Zeichens aus der angegebenen Zeichenkette"); while(matcher.find()) { count++; matcher.appendReplacement(buffer, ""); } matcher.appendTail(buffer); //Abholung des verwendeten Musters System.out.println("Es sind besondere Zeichen aufgetreten ");+count+"mal im angegebenen Text"); System.out.println("Text nach Entfernung aller davon \n");+buffer.toString()); } }
Ausgaberesultat
Geben Sie den Eingabetext ein: Hallo# wie$ sind& du| willkommen< bei> Tut-oria@ls@po-in#t. Entfernung der besonderen Zeichen aus der angegebenen Zeichenkette Es sind besondere Zeichen aufgetreten 11 mal im angegebenen Text Text nach Entfernung aller davon Hallo, wie geht es dir, willkommen bei w3codebox.