English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
appendReplacement()
Os métodos da classe Matcher aceitam um objeto StringBuffer e uma String (string de substituição) como parâmetros, e então adicionam os dados de entrada ao objeto StringBuffer e substituem o conteúdo correspondente com a string de substituição.
Internamente, este método lê cada caractere da string de entrada e adiciona ao buffer de String, sempre que houver correspondência, substitui a string em vez de adicionar o conteúdo correspondente ao buffer, e continua a partir da próxima posição do substring correspondente.
Se usar"}} /"ou" $" ao passar a string substituição para este método, eles não serão considerados caracteres normais e ocorrerá uma exceção-
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> um <b>exemplo</b> HTML <b>script</b>.</p>"; //A expressão regular é usada para匹配粗体标签的内容 String regex = "<b>(\\S+)</b>"; System.out.println("Stringa de entrada: \n")+str); //Crie um objeto de padrão Pattern pattern = Pattern.compile(regex); //Combina o padrão compilado na string Matcher matcher = pattern.matcher(str); //Crie um缓冲区 de string vazio StringBuffer sb = new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, "sampledata$")); //Matcher.quoteReplacement("Bo$ld"));/Data$")); } matcher.appendTail(sb); System.out.println("Conteúdo do StringBuffer: \n")+ sb.toString()); } }
Resultados de saída
Stringa de entrada:<p>This <b>is</b> um <b>exemplo</b> HTML <b>script</b>.</p>Exception em thread "main" java.lang.IllegalArgumentException: referência de grupo ilegal: índice do grupo está faltando at java.util.regex.Matcher.appendReplacement(Unknown Source) at OCTOBER.matcher.QuoteReplacement.main(QuoteReplacement.java:18)
O método quote Replacement da classe Matcher aceita um valor de string e retorna uma string de substituição literal. Isso é, os caracteres/e $ são ignorados, o resultado pode ser usado comoappendReplacement()o parâmetro do método.
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> um <b>exemplo</b> HTML <b>script</b>.</p>"; //A expressão regular é usada para匹配粗体标签的内容 String regex = "<b>(\\S+)</b>"; System.out.println("Stringa de entrada: \n")+str); //Crie um objeto de padrão Pattern pattern = Pattern.compile(regex); //Combina o padrão compilado na string Matcher matcher = pattern.matcher(str); //Crie um缓冲区 de string vazio StringBuffer sb = new StringBuffer(); while (matcher.find()) { matcher.appendReplacement(sb, Matcher.quoteReplacement("Bo$ld"));/Data$")); } matcher.appendTail(sb); System.out.println("Conteúdo do StringBuffer: \n")+ sb.toString()); } }
Resultados de saída
String de entrada: <p>This <b>is</b> um <b>exemplo</b> HTML <b>script</b>.</p> Conteúdo do 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 = "[#]"; //Crie um objeto de padrão Pattern pattern = Pattern.compile(regex); //Combina o padrão compilado na string Matcher matcher = pattern.matcher(input); //Crie um缓冲区 de string vazio String str = Matcher.quoteReplacement("sampledata"); System.out.println(str); } }
Resultados de saída
sampledata