php / regex: Wie ersetze ich einen Teil eines gefundenen Musters, aber lasse den Rest so wie er ist?

Wie kann ich einen Teilstring in einem gefundenen Muster ersetzen, aber den Rest so lassen, wie er ist?

(BEARBEITEN: Der reale Fall ist natürlich komplizierter als das folgende Beispiel, ich muss Vorkommen innerhalb von XML-Tags abgleichen. Deshalb muss ich Regex verwenden!)

Angenommen, ich möchte das Vorkommen des Buchstabens "X" innerhalb eines Wortes zum Buchstaben "Z" ändern.

ich möchte

aaXaa aaX Xaa

werden

aaZaa aaZ Zaa

Das Finden von Vorkommen von Wörtern einschließlich "x" ist kein Problem, wie folgt:

[^ X \ s]X [^ \ s]

Aber ein normaler preg_match ersetzt die vollständige Übereinstimmung, bei der alles im Muster außer "X" so bleiben soll, wie es ist.

Was ist der beste Weg, um dies in PHP zu erreichen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage