регулярка Найти текст, содержащий до 4 слов между словами

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

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
293
Есть текст в utf-8
взрослые мужчинки, ) головоломки женщины мужчинки, слово sdf ) женщины головоломки, взрослые мужчинки и тут головоломки
Нужно найти слова, содержащие такую конструкцию:
взрослые (до 4 слов. Так же могут быть любые знаки и символы, но хотя бы 1 слово (даже союз подойдет)) головоломки
делаю на php
PHP:
$text='взрослые мужчинки, ) головоломки женщины мужчинки, слово sdf ) женщины головоломки, взрослые мужчинки и тут головоломки';
$pattern="/взрослые.*(\b){0,4}головоломки/Uis"; // слишком много откусывает текста, берет больше слов между словами.
$pattern="/взрослые[^A-Za-z0-9_А-ЯЁа-яё](?:\b){1,4}[^A-Za-z0-9_А-ЯЁа-яё ]головоломки/Uis"; // тоже неправильно пашет.
preg_match_all($pattern, $text, $matches);
Из текста надо выдернуть:
  • взрослые мужчинки, ) головоломки
  • взрослые мужчинки и тут головоломки
Какой шаблон использовать?
 
PHP:
$pattern="/взрослые(\s+\S+){1,4}?\s+головоломки/";
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху