php / regex: Как заменить часть найденного шаблона, но оставив остальную часть как есть?
Как я могу заменить подстроку в найденном образце, но оставив все как есть?
(РЕДАКТИРОВАТЬ: Реальный случай, конечно, сложнее, чем в примере ниже, я должен сопоставить вхождения в тегах XML. Вот почему я должен использовать регулярное выражение!)
Допустим, я хочу изменить вхождения буквы «Х» в слове на букву «Z».
я хочу
aaXaa aaX Xaa
стать
aaZaa aaZ Zaa
Поиск вхождений слов, включая «x», не проблема, например:
[^ X \ s]X [^ \ s]
но обычный preg_match заменяет полное совпадение, где я хочу, чтобы что-либо в шаблоне, кроме «X», оставалось таким, как есть.
Какой лучший способ сделать это в php?