0

Perl でコーディングすることはまったくできません。したがって、 「com」、「net」、または「org」TLD以外のすべての URI をスコアリングする正規表現を作成するという単純なことのように見えることは、明らかに私のスキルを超えています。誰か親切に教えてもらえますか?

例として、一致させたい場合https://foo.com.us/asdf?qwerty=123と一致させたくftp://madeup.kernel.org/path/to/some/tarball.tar.bz2ない場合があります。

4

2 に答える 2

0

モジュールを使用しURIて、ホスト名を URL の残りの部分から分離する必要があります。

この例では、ホスト名の最後の部分文字列のみを抽出するため、たとえばukfromを参照しbbc.co.ukますが、目的には役立つはずです。

use strict;
use warnings;

use URI;

my @urls = qw{
    https://foo.com.us/asdf?qwerty=123
    ftp://madeup.kernel.org/path/to/some/tarball.tar.bz2
};

for my $url ( @urls ) {
    $url = URI->new($url);
    my $host = $url->host;
    my ($tld) = $host =~ /([^.]+)\z/;

    if ( $tld !~ /^(?com|net|org)\z/ ) {
        # non-standard TLD
    }
}
于 2015-06-26T05:21:27.240 に答える