php / regex: Как заменить часть найденного шаблона, но оставив остальную часть как есть?

Как я могу заменить подстроку в найденном образце, но оставив все как есть?

(РЕДАКТИРОВАТЬ: Реальный случай, конечно, сложнее, чем в примере ниже, я должен сопоставить вхождения в тегах XML. Вот почему я должен использовать регулярное выражение!)

Допустим, я хочу изменить вхождения буквы «Х» в слове на букву «Z».

я хочу

aaXaa aaX Xaa

стать

aaZaa aaZ Zaa

Поиск вхождений слов, включая «x», не проблема, например:

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

но обычный preg_match заменяет полное совпадение, где я хочу, чтобы что-либо в шаблоне, кроме «X», оставалось таким, как есть.

Какой лучший способ сделать это в php?

Ответы на вопрос(4)

Ваш ответ на вопрос