Я занимаюсь поиском веб-искателя в Perl. Он извлекает содержимое со страницы, а затем сопоставляется соответствие шаблону для проверки языка содержимого. Значения Unicode используются для соответствия содержимому.Только для печати только для печати
Иногда извлеченный контент содержит текст на нескольких языках. Соответствие шаблону, которое я использовал здесь, печатает весь текст, но я хочу напечатать только текст, соответствующий значениям Unicode, указанным в шаблоне.
my $uu = LWP::UserAgent->new('Mozilla 1.3');
my $extractorr = HTML::ContentExtractor->new();
# create response object to get the url
my $responsee = $uu->get($url);
my $contentss = $responsee->decoded_content();
$range = "([\x{0C00}-\x{0C7F}]+)"; # match particular language
if ($contentss =~ m/$range/) {
$extractorr->extract($url, $contentss);
print "$url\n";
binmode(STDOUT, ":utf8");
print $extractorr->as_text;
}
пробовали и не нашли никакой разницы. – Nagaraju
Вы все еще используете переменную '$ range'? Я ожидал, что вы напишете только 'if ($ contentss = ~/(\ p {Telugu} +) /) {...}'. Если вы хотите поместить регулярное выражение в переменную, вы должны удалить квадратные скобки (поскольку они содержат только список символов, и вы не можете поместить свойства Unicode внутри) и использовать одинарные кавычки вместо двойных (иначе обратная косая черта будут проглатываться). Итак, 'my $ range = '(\ p {Telugu} +)''. – Borodin
Я не использую переменную $ range.Tried my $ range = '(\ p {Telugu} +)', но я получаю тот же результат. – Nagaraju