LINUX.ORG.RU

RegExp


0

0

Привет всем! Есть такая задача - посчитать количество слов и предожений в тексте. Статистика по тексту в одной Qt-программе. Как я понял, нужно заюзать QString::contains(QRegExp("bla-bla-bla")). Вопрос: что ставить вместо bla-bla-bla? :) Поскольку я очень плохо разбираюсь в регулярных выражениях перла, а на то, чтобы досконально углубиться в их изучение, у меня сейчас нет времени, то не могли бы вы подсказать, как мне это сделать? Заранее благодарен.

★★

Количество пробелов + 1
Или надо именно regexp?

Fedor ★★★
()
Ответ на: комментарий от Fedor

минус многоточия
минус точки в сокращениях и цитатах
плюс восклицательные и вопросительные знаки и их комбинации типа "?..", "???", "!!!", "?!" и т.п.

вобщем всё далеко не так просто.

anonymous
()
Ответ на: комментарий от Fedor

Если предложение всегда начинается с большой буквы и после точки, то может где то так:
а)Считаем точки
@arr = ($text =~ m/\.\s+[A-Z]/gms);
print $#arr + 2;

б)Считаем предложения
@arr = split(/\.\s+(?=[A-Z])/, $s);
print scalar(@arr);

roller ★★★
()
Ответ на: комментарий от roller

Спасибо, конечно, но предложения далеко не всегда начинаются с после точки:).

И как быть со словами?

V_L_A_D ★★
() автор топика
Ответ на: комментарий от V_L_A_D

>Спасибо, конечно, но предложения далеко не всегда начинаются с после точки:).

Какие еще варианты?

Все слова в массив: @arr = ($text =~ m/\w+/ig)

roller ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.