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?