Поиск 4 слов

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

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
Подскажите, пожалуйста, как найти связку из 4 слов, между которыми только пробел и все слова от 4х букв и более.
 
Предлагаю такой код:
PHP:
preg_match ( '#((^|\s)\w{4,}){4}#', $str, $out );
Нужная строка будет в $out[0].

ИМХО, это код более универсален. Т.к. при необходимости найти не 4 слова подряд, а 40 или 400 - первый предложенный вариант разрастётся до безобразия, а здесь - только последнюю цифру сменить. Тоже и с количеством символов в слове.
 
bugargen Спасибо за конструктивную критику.
Долго я и не думал просто в лоб решил :)

Тестил твой код на файле в cp1251, окончание строки \r\n
По твоей регулярке в элементах массива $out[0] будут результаты с предшествующей \r-кой. Необходимо дополнительно trim делать.
Плюс результирующий массив больше по объему - дополнительная оперативка.
 
вариант bugargen не совсем подходит под условие ТС-а
и не в trim дело.
если искомая строкабудет отделятся от начала строки символами не из алфавита, и не пробелмаи, то она не будет найдена
вот чуть больший но более верный вариант:

PHP:
preg_match ( '#(\w{4,}\s){3}\w{4,}#', $str, $out );
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху