Maison  >  Article  >  développement back-end  >  Existe-t-il un équivalent Java au preg_replace_callback() de PHP ?

Existe-t-il un équivalent Java au preg_replace_callback() de PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 12:15:02225parcourir

Is There a Java Equivalent to PHP's preg_replace_callback()?

Java Équivalent à preg_replace_callback de PHP

La fonction PHP preg_replace_callback() appelle une fonction de rappel pour chaque correspondance trouvée dans une expression régulière. Java offre-t-il une fonctionnalité équivalente ?

L'alternative de Java : adopter l'approche native

Bien que Java ne fournisse pas d'équivalent direct à preg_replace_callback(), il nous donne le pouvoir avec une approche alternative tirant parti de Matcher et StringBuffer. Voici comment obtenir des résultats similaires :

Étape 1 : Compiler l'expression régulière

Matcher regexMatcher = regex.matcher(subjectString);

Étape 2 : Parcourir les correspondances

while (regexMatcher.find())

Étape 3 : Modifier le texte de remplacement de manière dynamique

regexMatcher.appendReplacement(resultString, "replacement");

Étape 4 : ajouter la queue de contexte

regexMatcher.appendTail(resultString);

Exemple :

StringBuffer resultString = new StringBuffer();
Pattern regex = Pattern.compile("\[thumb(\d+)\]");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
  regexMatcher.appendReplacement(resultString, "<img src=\"thumbs/" + photos[regexMatcher.group(1)] + "\">");
}
regexMatcher.appendTail(resultString);

En suivant ces étapes, vous pouvez réutiliser votre code PHP de manière transparente en Java et gérer gracieusement les correspondances d'expressions régulières avec des remplacements personnalisés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn