php регулярное выражение - нужно заменить каждый третий пробел на ключевое слово

программирование php регулярные выражения regexp

Вопрос как бы из двух частей:
1. нужно регулярным выражением заменять каждый третий (2-й, 4-й, 5-й, n-й) пробел на ключевое слово;
2. ключевые слова должны чередоваться (порядок не важен), вставляться должны циклически по всему тексту.
Заранее спасибо за ответы.

Примечание:
Второй вопрос уже решился, остается только первый, хотя есть аналог его решения. Уже исключительно из спортивного интереса, может все-же кто-то подскажет, как на регулярках это осуществить?

P.S. может кому интересно, решение второго вопроса с циклами.

$max - кол-во ключевых слов
$keys - ключевые слова
$random_keyword - случайное ключевое слово, выбирается из массива специальной функцией

function random_words ('0', $max, $keys)
{
while ($random_keyword = random ($min, $max))
{
return $keys[$random_keyword];
}
}

foreach ($spam as $value)
{
$text = preg_replace('/$/', " " . random_words ($min, $max, $keys) ." ", $value);
print "$text";
}
Ответы:
2 как бы намекает, что нужно использовать цикл, регуляркой не обойтись
возможно чересчур топорно, но попробуй
регулярка - ([^\s]*)\s([^\s]*)\s([^\s]*)(\s)
замена - "\1\s\2\s\3".$word


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.