Forum Webscript.Ru

Программирование => Регулярные выражения => Тема начата: alexlist от 10 Мая 2006, 09:30:28

Название: Регулярное выражение (выделить первые три слова)
Отправлено: alexlist от 10 Мая 2006, 09:30:28
Сильная штука регулярные выражения.
Научится бы ими ещё талантливо пользоватся.

Есть задача.
Написать функцию
Функция думаю должна быть предположительно на регулярных выражениях.
Но ето не столь важно. В данном вопрос главное скорость.
Так как функция за раздолжна обрабатывать туеву хучу строк взятых из базы.

Задача такая:
- Из каждой строки(строка не длинее 255 символов)
взять первые три слова  не короче N-ого количества символов, сразу отметая слова исключения.

- Перед изъятием слов очистить строку от Любых символов, не образующий "слово"(включая знак подчеркивания)

- Привести это дело к нижнему регистру и записать слова через запятую


Путем долгих ковыряний был написан собсвенный код.
НО какой то он не правильный.
Что то мне подсказывает что ето можно сделать проще и оптимальней.


function GetWords($text,$N){
$text=strtolower (preg_replace("[\\-]","_",$text));
$text=strtolower (preg_replace("[\\W]"," ",$text));
$text=preg_replace("[\\s+]", "  "," $text ");
$text=preg_replace("(\\s((\\S{1,$N})|or|and|of|com|tm|ltd|inc|the|net)\\s)", " ",$text );
$text=preg_replace("([\\s\\_]+)", ",",trim($text));
return $text;
}
Название: Регулярное выражение (выделить первые три слова)
Отправлено: for_i_0 от 11 Мая 2006, 11:32:02
[OFF]переносено в соответсвующий форум[/OFF]