Как посчитать количество слов или букв в preg_match_all

seosniks
На сайте с 13.08.2007
Offline
389
1978

Добрый день, форумчане.

Подскажите пожалуйста как мне посчитать количество Русских слов, или букв

В регурялке

preg_match_all("/<div>(.*?)<\/div>/is", $contents, $oks);

У меня есть несколько строк текста закрыты тегами

например вот ниже, строки массива.

[21]=>string(136) "09.09 15:09</span>Полузащитник сборной Бельгии "</a>"

[22]=>string(147) 09.09 14:43</span>Федерация тенниса Испании</a>"

[23]=>string(127) "09.09 14:19</span>Более 30 человек стали жертвами серии</a>"

[24]=>string(134) "09.09 13:46</span>Уголовное дело возбуждено по факту</a>"

Мне надо посчитать (либо число русских букв, либо слов) в каждой строке, массива.

Подскажите пожалуйста как это сделать?

Может добавить еще одну регулярку которая будет каждую строку массива проверять

и выдавать только русские буквы, а затем их считать ?

Спасибо

siv1987
На сайте с 02.04.2009
Offline
427
#1

Вы сначала скажите зачем их нужно считать?

seosniks
На сайте с 13.08.2007
Offline
389
#2
siv1987:
Вы сначала скажите зачем их нужно считать?

Мне нужно найти самый длинный кусок имеющий русские буквы.

siv1987
На сайте с 02.04.2009
Offline
427
#3

Все же непонятно зачем такое требуется, но можно как-то так


foreach( $oks[1] as $k => $v )
{
$_str = preg_replace( '/[^а-я]+/i', '', $v );
$len[ $k ] = strlen( $_str );
}
H
На сайте с 25.11.2009
Offline
73
#4

Очень просто. Теми же ругулярками, внутри элемента массива ищешь либо русские слова либо русские буквы. Кол-во элементов массива и будет количеством слов/русских букв.

preg_match_all('/([А-я-]+)[^А-я-]/iU', $element, $words, PREG_SET_ORDER);
preg_match_all('/[А-я-]/iU', $element, $letters, PREG_SET_ORDER);
Готовые пакеты статей, актуальные в ЛС (/ru/forum/495191) Парсеры/грабберы любой сложности. Дорого. (http://www.weblancer.net/users/hiberok/reviews/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий