[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Четкое вхождения слова
vovabigov
Помогите с регуляркой - все форумы облазил, никак не соображу.

Нужно найти сколько раз слово $word встречается в строке $str. При этом нужно именно четкое вхождение слова - без словоформ и чтобы слова, содержащие в себе $word не учитывались. (Если $word='рука', то 'рукав' не считать).

Пишу:

$numOfWord = preg_match_all ("/[^а-яА-Я]".$word ."[^а-яА-Я]/iu", $str, $res);
echo 'слово встречается '.numOfWord.' раз';


Но при этом, если $str начинается с моего слова, то регулярка не срабатывает.



Спустя 21 минута, 18 секунд (21.11.2010 - 20:23) DySprozin написал(а):
;;Но при этом, если $str начинается с моего слова, то регулярка не срабатывает.
а если $str в конце строки - тоже не работает (;

вот так будет лучше:
$numOfWord = preg_match_all ("/(?:[^а-яА-Я]|^)$word(?:[^а-яА-Я]|$)/iu", $str, $res); 


(?:[^а-яА-Я]|^) - либо разрешенный символ, либо начало строки
(?:[^а-яА-Я]|$) - либо разрешенный символ, либо конец строки

Спустя 35 минут, 3 секунды (21.11.2010 - 20:58) vovabigov написал(а):
DySprozin, спасибо!
Пойду пргобовать.

Спустя 5 минут, 14 секунд (21.11.2010 - 21:04) inpost написал(а):
Для конкурса? Так не чесно! =)

Спустя 14 минут, 56 секунд (21.11.2010 - 21:19) vovabigov написал(а):
Цитата (inpost @ 21.11.2010 - 18:04)
Для конкурса? Так не чесно! =)

Если это мне, то я не понял. Какой конкурс?

Спустя 25 минут, 21 секунда (21.11.2010 - 21:44) DySprozin написал(а):
;;Если это мне, то я не понял. Какой конкурс?
да просто в конкурсе требуется организовать поиск tongue.gif

они так шутют wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.