Замена слов

Статус
В этой теме нельзя размещать новые ответы.

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Имеем текст:
PHP:
$text="Rock-and-Roll is the best style. I dislike Rock .That's all.
Подскажите, как заменить слово Rock на Rap, но при этом Rock-and-Roll оставить не изменным.
P.S.
Текст взят для примера.
Вопрос в том, как заменять слова, но при этом не трогать те части слов, содержащие такую часть, которую мы меняем.
 
PHP:
$text="Rock-and-Roll is the best style. I dislike Rock .That's all.";
$text = preg_replace("/rock /i","Rap ",$text);
echo $text;
 
Ещё вопрос.
Если в тексте слово word встречается 15 раз.
Мне надо рандомно от 5-8 раз заменить его на word2, как это реализовать?
 
PHP:
preg_replace("/rock /i","Rap ", $text, rand(5, 8));
 
Freeborn

Такой метод заменит разное количество, но от начала текста. То есть не получится так - первое меняем, второе нет, третье меняем.
 
Для поиска отдельного слова хорошо использовать маску \bслово\b, где \b означает границу слова.
Вариант Saen cловит тебе кусок слова brock, например, и получится brap.
 
Ещё вопрос.
Если в тексте слово word встречается 15 раз.
Мне надо рандомно от 5-8 раз заменить его на word2, как это реализовать?
А сама замена только одна? Тогда можно разбить строку на массив подстрок, разделителем которых будет строка поиска, а потом при склейке рандомно заменить на новые слова.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху