Автор Тема: Регулярное выражение (выделить первые три слова)  (Прочитано 3631 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alexlist

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Сильная штука регулярные выражения.
Научится бы ими ещё талантливо пользоватся.

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

Задача такая:
- Из каждой строки(строка не длинее 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

  • $15 per hour
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 555
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.php.net/manual/en
[OFF]переносено в соответсвующий форум[/OFF]
[off]Безработный[/off]

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28