Xander
Новичок
Регулярное выражение (как оптимально выделить первые три слова?)
Сильная штука регулярные выражения.
Научится бы ими ещё талантливо пользоватся.
Есть задача.
Написать функцию
Функция думаю должна быть предположительно на регулярных выражениях.
Но ето не столь важно. В данном вопрос главное скорость.
Так как функция за раздолжна обрабатывать туеву хучу строк взятых из базы.
Задача такая:
- Из каждой строки(строка не длинее 255 символов)
взять первые три слова не короче N-ого количества символов, сразу отметая слова исключения.
- Перед изъятием слов очистить строку от Любых символов, не образующий "слово"(включая знак подчеркивания)
- Привести это дело к нижнему регистру и записать слова через запятую
Путем долгих ковыряний был написан собсвенный код.
НО какой то он не правильный.
Что то мне подсказывает что ето можно сделать проще, быстрее и оптимальней.
Сильная штука регулярные выражения.
Научится бы ими ещё талантливо пользоватся.
Есть задача.
Написать функцию
Функция думаю должна быть предположительно на регулярных выражениях.
Но ето не столь важно. В данном вопрос главное скорость.
Так как функция за раздолжна обрабатывать туеву хучу строк взятых из базы.
Задача такая:
- Из каждой строки(строка не длинее 255 символов)
взять первые три слова не короче N-ого количества символов, сразу отметая слова исключения.
- Перед изъятием слов очистить строку от Любых символов, не образующий "слово"(включая знак подчеркивания)
- Привести это дело к нижнему регистру и записать слова через запятую
Путем долгих ковыряний был написан собсвенный код.
НО какой то он не правильный.
Что то мне подсказывает что ето можно сделать проще, быстрее и оптимальней.
PHP:
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));
$list=explode(",", $text);
$text=$list[0].",".$list[1].",".$list[2];
return $text;
}