У меня есть функция split, которая разбивает строки в документе .txt на основе пробелов и специальных символов и преобразует их в нижний регистр, чтобы подсчитать общее количество слов, присутствующих в документе.Сейчас я пытаюсь расширить регулярное выражение, чтобы все html-комментарии, включая все слова внутри них, рассматривались как разделители, но я не могу заставить обновленное регулярное выражение работать правильно.
my @words = split /(?:([_\W\s\d]|(<(\w+)>.*<\/\>)))+/, $text;
#count strings
%count = ();
foreach $word (@words) {
@count{map lc, @keys} =
map lc, delete @count{@keys = keys %count};
$count{$word}++;
}
foreach $key (keys %count) {
print $key, $count{$key};
}
В настоящее время первый класс charcter
[_\W\s\d]+
работает нормально, но я не могу заставить второй
|(<(\w+).*\/\>)+
функционировать корректно при совместном использовании,второй класс символов не работает правильно, и пробел считается словом.в идеале желаемый вывод должен разделять слова между пробелами и специальными символами, а также разделять HTML-комментарии (фактически игнорируя любые слова между тегами комментариев)
Я не уверен, что смогу использовать два класса символов в разделениифункционировать или нет?все еще справляюсь с регулярным выражением!