Как заменить слово с учётом заглавной буквы?

Можно ли заменить слово "река" на слово "вода", а слово "Река" на слово "Вода" одним действием?
Т.е. понятно что можно:
str_replace('река', 'вода');
str_replace('Река', 'Вода');

Но это уже 2 действия... Регулярку хитрую составить? На ум не приходит и с ней вариант.
  • Вопрос задан
  • 173 просмотра
Решения вопроса 3
@karminski
Senior React.JS Developer
Так?
str_replace(['река', 'Река'], ['вода', 'Вода']);
Ответ написан
$subject = 'Water water Sand sugar Sugar sand';
$from = ['water', 'salt', 'sand'];
$to = ['river', 'sugar', 'stone'];

echo str_replace(array_merge($from, array_map('ucfirst', $from)), array_merge($to, array_map('ucfirst', $to)), $subject);
?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
php.net/manual/ru/function.str-replace.php

mixed $search , mixed $replace
Ответ написан
Комментировать
@Quieteroks
php программист
Для этого есть регистронезависимые функции. Для Вашей функции аналог str_ireplace.
Если нужно учесть наличие первой большой буквы, то я уже точно не подскажу. Возможно регулярные выражения способны помочь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы