Heim  >  Artikel  >  Backend-Entwicklung  >  Gibt es ein Java-Äquivalent zu PHPs preg_replace_callback()?

Gibt es ein Java-Äquivalent zu PHPs preg_replace_callback()?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 12:15:02224Durchsuche

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

Java-Äquivalent zu PHPs preg_replace_callback

Die PHP-Funktion preg_replace_callback() ruft eine Rückruffunktion für jede in einem regulären Ausdruck gefundene Übereinstimmung auf. Bietet Java eine gleichwertige Funktionalität?

Java-Alternative: Den nativen Ansatz nutzen

Obwohl Java kein direktes Äquivalent zu preg_replace_callback() bietet, bietet es uns doch Möglichkeiten mit einem alternativen Ansatz, der Matcher und StringBuffer nutzt. So können Sie ähnliche Ergebnisse erzielen:

Schritt 1: Kompilieren Sie den regulären Ausdruck

Matcher regexMatcher = regex.matcher(subjectString);

Schritt 2: Über Übereinstimmungen iterieren

while (regexMatcher.find())

Schritt 3: Ersetzungstext dynamisch ändern

regexMatcher.appendReplacement(resultString, "replacement");

Schritt 4: Kontextende anhängen

regexMatcher.appendTail(resultString);

Beispiel:

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);

Indem Sie diese Schritte befolgen, können Sie Ihren PHP-Code nahtlos in Java umfunktionieren und reguläre Ausdrucksübereinstimmungen mit benutzerdefinierten Ersetzungen problemlos verarbeiten.

Das obige ist der detaillierte Inhalt vonGibt es ein Java-Äquivalent zu PHPs preg_replace_callback()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn