English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
appendReplacement()
I metodi della classe Matcher accettano un oggetto StringBuffer e una Stringa (stringa sostituita) come parametri, poi aggiungono i dati di input all'oggetto StringBuffer e sostituiscono il contenuto corrispondente con la stringa sostituita.
Internalmente, questo metodo legge ogni carattere dalla stringa di input e lo aggiunge alla Stringa Buffer, ogni volta che si verifica una corrispondenza, sostituisce la stringa invece di aggiungere la parte corrispondente alla buffer, poi continua dal prossimo carattere della stringa corrispondente.
Se si utilizza " / " o " $ " per passare una stringa sostituita a questo metodo, non verranno considerati come caratteri normali e si verificherà un'eccezione-
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> <b>an</b> <b>example</b> HTML <b>script</b>.</p>"; //Espressione regolare per abbinare il contenuto del tag grassetto String regex = "<b>(\\S+)</b>"; System.out.println("Stringa di input: \n"+str); //Creare un oggetto di modello Pattern pattern = Pattern.compile(regex); //Cercare la modalità compilata nella stringa Matcher matcher = pattern.matcher(str); //Creare una stringa buffer vuota StringBuffer sb = new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, "sampledata$" ); //Matcher.quoteReplacement("Bo$ld/Data$")); } matcher.appendTail(sb); System.out.println("Contenuti della StringBuffer: \n"+ sb.toString()); } }
Risultato di output
Stringa di input:<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>Eccezione nel thread "main" java.lang.IllegalArgumentException: Riferimento di gruppo illegale: l'indice del gruppo è mancante at java.util.regex.Matcher.appendReplacement(Unknown Source) at OCTOBER.matcher.QuoteReplacement.main(QuoteReplacement.java:18)
Il metodo quote Replacement della classe Matcher accetta un valore di stringa e restituisce una stringa di sostituzione testuale. A volte, i caratteri / e $ della stringa data vengono ignorati, e il risultato può essere utilizzato comeappendReplacement()Parametro del metodo.
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>"; //Espressione regolare per abbinare il contenuto del tag grassetto String regex = "<b>(\\S+)</b>"; System.out.println("Stringa di input: \n"+str); //Creare un oggetto di modello Pattern pattern = Pattern.compile(regex); //Cercare la modalità compilata nella stringa Matcher matcher = pattern.matcher(str); //Creare una stringa buffer vuota StringBuffer sb = new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, Matcher.quoteReplacement("Bo$ld/Data$")); } matcher.appendTail(sb); System.out.println("Contenuti della StringBuffer: \n"+ sb.toString()); } }
Risultato di output
Stringa di input: <p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p> Contenuti della StringBuffer: <p>This Bo$ld/Data$ an Bo$ld/Data$ HTML Bo$ld/Data$.</p>
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 = "[#]"; //Creare un oggetto di modello Pattern pattern = Pattern.compile(regex); //Cercare la modalità compilata nella stringa Matcher matcher = pattern.matcher(input); //Creare una stringa buffer vuota String str = Matcher.quoteReplacement("sampledata"); System.out.println(str); } }
Risultato di output
sampledata