Найти веб-ссылки без элементов в простом контенте, используя perl регулярное выражение или модуль - PullRequest
0 голосов
/ 03 февраля 2020

Мой входной файл - это plain content:

Fries Scheepvaartmuseum: Schiffmodelle in jeglichen Größen und viele Infos über Schiffsbau und Seefahrt sow ie über d ie Geschichte der Stadt Sneek. *www.friesscheepvaartmuseum.nl** Museen sow ie facebook.com Viele Kleine Gassen zwischen den https://facebook.com Grachten locken zu Erkundungstouren. Der Strand lädt zu romantischen Spaziergängen ein { ссылка } nicht nur probieren und kaufen, sondern auch das nostalgische Haus und d ie Дистиллятор ie besichtigen stackoverflow.com / вопросы / помечены / perl

Я могу найти www.<sample>.<edu|com|af|ag|ai|al|etc>, https?://<sample>.<edu|com|af|ag|ai|al|etc> с префиксом (www, http) и суффиксом (список доменов).

Однако мне нужно найти ссылки на основе некоторого списка доменов, таких как ... .edu, .com, .af, .ag, .ai, .al без префикса и суффикса в веб-ссылках.

Например:

Я не смог найти incomplete or without prefix www, https, http links как facebook.com, stackoverflow.com/questions/tagged/perl в простом содержании.

Не могли бы вы, пожалуйста, кто-нибудь помочь мне в этом если какой-либо модуль доступен или какие-либо шаблоны регулярных выражений были бы полезны для меня, так как у меня есть более 10 тыс. веб-ссылок.

1 Ответ

1 голос
/ 04 февраля 2020

Вот пример использования URI :: Find :: Schemeless :

use feature qw(say);
use strict;
use warnings;
use URI::Find::Schemeless;

my $text = do { local $/; <DATA> };
my $finder = URI::Find::Schemeless->new(\&callback);
my $how_many_found = $finder->find(\$text);

sub callback {
    my ( $uri, $orig_text ) = @_;
    say "Found: ", $orig_text;
}

__DATA__
Fries Scheepvaartmuseum: Schiffmodelle in jeglichen Größen und viele Infos über Schiffsbau und Seefahrt sowie über die Geschichte der Stadt Sneek. *www.friesscheepvaartmuseum.nl** Museen sowie facebook.com viele kleine Gassen zwischen den https://facebook.com Grachten locken zu Erkundungstouren. Der Strand lädt zu romantischen Spaziergängen ein https://stackoverflow.com/questions/tagged/perl nicht nur probieren und kaufen, sondern auch das nostalgische Haus und die Destillerie besichtigen stackoverflow.com/questions/tagged/perl

Вывод :

Found: facebook.com
Found: https://facebook.com
Found: https://stackoverflow.com/questions/tagged/perl
Found: stackoverflow.com/questions/tagged/perl
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...