Maison >développement back-end >tutoriel php >Comment obtenir la fonctionnalité preg_replace_callback() de PHP en Java ?

Comment obtenir la fonctionnalité preg_replace_callback() de PHP en Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-07 14:55:031017parcourir

How to Achieve PHP's preg_replace_callback() Functionality in Java?

Une alternative Java à preg_replace_callback de PHP

Lors de la transition de code de PHP vers Java, un défi courant se pose pour trouver un équivalent pour la fonction preg_replace_callback() de PHP. Cette fonction permet d'utiliser une fonction de rappel pour chaque correspondance dans une expression régulière, en passant le texte de la correspondance comme argument.

Exemple PHP

Considérez le code PHP suivant :

$articleText = preg_replace_callback("/\[thumb(\d+)\]/",'thumbReplace', $articleText);

function thumbReplace($matches) {
   global $photos;
   return "<img src=\"thumbs/" . $photos[$matches[1]] . "\">";
}

Équivalent Java

En Java, une approche comparable peut être obtenue en utilisant les méthodes appendReplacement() et appendTail() dans une boucle :

StringBuffer resultString = new StringBuffer();
Pattern regex = Pattern.compile("regex");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
  // Vary replacement text dynamically for each match
  regexMatcher.appendReplacement(resultString, "replacement");
}
regexMatcher.appendTail(resultString);

Ce code offre la flexibilité de personnalisez le texte de remplacement de manière dynamique pour chaque correspondance, en imitant la fonctionnalité de rappel en PHP.

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