php / regex: Jak zastąpić część znalezionego wzorca, ale pozostawiając resztę taką, jaka jest?

Jak mogę zastąpić podciąg w znalezionym wzorcu, ale pozostawiając resztę taką, jaka jest?

(EDYCJA: Rzeczywisty przypadek jest oczywiście bardziej skomplikowany niż poniższy przykład, muszę dopasować wystąpienia w znacznikach XML. Dlatego muszę używać wyrażenia regularnego!)

Powiedzmy, że chcę zmienić występowanie litery „X” w słowie na literę „Z”.

chcę

aaXaa aaX Xaa

zostać

aaZaa aaZ Zaa

Znalezienie wystąpień słów zawierających „x” nie jest problemem, takim jak ten:

[^ X]X [^ s]

ale normalny preg_match zastępuje cały mecz, gdzie chcę, aby cokolwiek we wzorze oprócz „X” pozostało bez zmian.

Jaki jest najlepszy sposób na osiągnięcie tego w php?

questionAnswers(4)

yourAnswerToTheQuestion