Нуждаюсь в помощи с регуляркой

norway

Новичок
Нуждаюсь в помощи с регуляркой

Есть доподлинно известный список заранее определенных слов:
мама
мыла
раму
хищно
щурясь
Слова можно складывать в предложения, причем порядок может быть любым:
мама раму мыла щурясь хищно; хищно раму мыла мама щурясь; и тд.
И количество слов может быть любым, но не более их числа, т.е. повторения невозможны:
мама хитро; раму мама щурясь; и тд.

Ткните :)

-~{}~ 16.03.09 22:55:

Ах да, слова отделяются пробелами, коих количество может быть любым, т.е. \s+
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Как пробовал?
 

Армян

Новичок
explode, array_map(trim), array_uniq, count. хотя можно прост эксплод и дальше ручками
 

norway

Новичок
Автор оригинала: Mr_Max
Как пробовал?
Пока я не осознал, что слова могут следовать в произвольном порядке все было радужно. Можно ли вообще такие предложения выразить одной регуляркой?
 

Dreammaker

***=Ф=***
Армян
преклоняюсь перед умением понимать вопросы в виде потока сознания :) Я вот только уже после второго поста ТСа понял, что ему нужно (надеюсь, что правильно).

т.е. повторения невозможны:
Не могут быть теоретически, или не нужно учитывать такие вхождения в которых есть последовательность типа "мама мама щурясь" или "рама хищно рама"?
 

norway

Новичок
Не нужно учитывать.
Как сделать в 10-15 строк кода я знаю, но лень призывает найти способ с одной строчкой
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
norway
Тебе даже палец о палец ударить лень.
Ждешь пока тебе преподнесут готовое.
И вообще что за боязнь 15 строчек?
Это типо неправильно?

З.ы.
Форум не предназначен для решения своих задач чужими руками.
Показываешь что делал, как делал, что получалось/не получалось.
 

x-yuri

Новичок
norway советую тебе для себя открыть другие факторы, кроме лени или начинать лениться в долгосрочной перспективе
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Армян
Далеко не несколько. ;)
 

Димон

Новичок
$str = "Стою на асфальте я в лыжи обутый. Или лыжи не едут или я ебанутый.";

$arr = array('асфальт', 'лыжи', 'обутый', 'едут', 'ебанутый', 'в');

preg_match_all("!".join("|", $arr)."!usi", $str, $found);
shuffle($found[0]);
$res = join(' ', array_map('trim', array_unique($found[0])) );

echo $res;
 
Сверху