Regexp::Common::URI::news - Returns a pattern for file URIs.


Regexp-Common documentation Contained in the Regexp-Common distribution.

Index


Code Index:

NAME

Top

Regexp::Common::URI::news -- Returns a pattern for file URIs.

SYNOPSIS

Top

    use Regexp::Common qw /URI/;

    while (<>) {
        /$RE{URI}{news}/       and  print "Contains a news URI.\n";
    }

DESCRIPTION

Top

$RE{URI}{news}

Returns a pattern that matches news URIs, as defined by RFC 1738. News URIs have the form:

    "news:" ( "*" | group | article "@" host )

Under {-keep}, the following are returned:

$1

The complete URI.

$2

The scheme.

$3

The part of the URI following "news://".

$RE{URI}{NNTP}

Returns a pattern that matches NNTP URIs, as defined by RFC 1738. NNTP URIs have the form:

    "nntp://" host [ ":" port ] "/" group [ "/" digits ]

Under {-keep}, the following are returned:

$1

The complete URI.

$2

The scheme.

$3

The part of the URI following "nntp://".

$4

The host and port, separated by a colon. If no port was given, just the host.

$5

The host.

$6

The port, if given.

$7

The group.

$8

The digits, if given.

REFERENCES

Top

[RFC 1738]

Berners-Lee, Tim, Masinter, L., McCahill, M.: Uniform Resource Locators (URL). December 1994.

SEE ALSO

Top

Regexp::Common::URI for other supported URIs.

AUTHOR

Top

Damian Conway (damian@conway.org)

MAINTAINANCE

Top

This package is maintained by Abigail (regexp-common@abigail.be).

BUGS AND IRRITATIONS

Top

Bound to be plenty.

LICENSE and COPYRIGHT

Top


Regexp-Common documentation Contained in the Regexp-Common distribution.

package Regexp::Common::URI::news;

use Regexp::Common               qw /pattern clean no_defaults/;
use Regexp::Common::URI          qw /register_uri/;
use Regexp::Common::URI::RFC1738 qw /$grouppart $group $article
                                     $host $port $digits/;

use strict;
use warnings;

use vars qw /$VERSION/;
$VERSION = '2010010201';


my $news_scheme = 'news';
my $news_uri    = "(?k:(?k:$news_scheme):(?k:$grouppart))";

my $nntp_scheme = 'nntp';
my $nntp_uri    = "(?k:(?k:$nntp_scheme)://(?k:(?k:(?k:$host)(?::(?k:$port))?)" 
                . "/(?k:$group)(?:/(?k:$digits))?))";

register_uri $news_scheme => $news_uri;
register_uri $nntp_scheme => $nntp_uri;

pattern name    => [qw (URI news)],
        create  => $news_uri,
        ;

pattern name    => [qw (URI NNTP)],
        create  => $nntp_uri,
        ;

1;

__END__