Нужно найти сколько раз слово $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 в конце строки - тоже не работает (;
вот так будет лучше:
(?:[^а-яА-Я]|^) - либо разрешенный символ, либо начало строки
(?:[^а-яА-Я]|$) - либо разрешенный символ, либо конец строки
а если $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 написал(а):
;;Если это мне, то я не понял. Какой конкурс?
да просто в конкурсе требуется организовать поиск
они так шутют
да просто в конкурсе требуется организовать поиск
они так шутют