NAME
Regexp::Common::list -- provide regexes for lists
SYNOPSIS
use Regexp::Common qw /list/;
while (<>) {
/$RE{list}{-pat => '\w+'}/ and print "List of words";
/$RE{list}{-pat => $RE{num}{real}}/ and print "List of numbers";
}
DESCRIPTION
Please consult the manual of Regex::Common for a general description of the works of this interface.
Do not use this module directly, but load it via Regex::Common.
$RE{list}{-pat}{-sep}{-lastsep}
Returns a pattern matching a list of (at least two) substrings.
If -pat=P
is specified, it defines the pattern for each substring in the list. By default, P is qr/.*?\S/
. In Regexp::Common 0.02 or earlier, the default pattern was qr/.*?/
. But that will match a single space, causing unintended parsing of a, b, and c
as a list of four elements instead of 3 (with -word
being (?:and)
). One consequence is that a list of the form "a,,b" will no longer be parsed. Use the pattern qr /.*?/
to be able to parse this, but see the previous remark.
If -sep=P
is specified, it defines the pattern P to be used as a separator between each pair of substrings in the list, except the final two. By default P is qr/\s*,\s*/
.
If -lastsep=P
is specified, it defines the pattern P to be used as a separator between the final two substrings in the list. By default P is the same as the pattern specified by the -sep
flag.
For example:
$RE{list}{-pat=>'\w+'} # match a list of word chars
$RE{list}{-pat=>$RE{num}{real}} # match a list of numbers
$RE{list}{-sep=>"\t"} # match a tab-separated list
$RE{list}{-lastsep=>',\s+and\s+'} # match a proper English list
Under -keep
:
$RE{list}{conj}{-word=PATTERN}
An alias for $RE{list}{-lastsep=>'\s*,?\s*PATTERN\s*'}
If -word
is not specified, the default pattern is qr/and|or/
.
For example:
$RE{list}{conj}{-word=>'et'} # match Jean, Paul, et Satre
$RE{list}{conj}{-word=>'oder'} # match Bonn, Koln oder Hamburg
$RE{list}{and}
An alias for $RE{list}{conj}{-word=>'and'}
$RE{list}{or}
An alias for $RE{list}{conj}{-word=>'or'}
SEE ALSO
Regexp::Common for a general description of how to use this interface.
AUTHOR
Damian Conway (damian@conway.org)
MAINTAINANCE
This package is maintained by Abigail (regexp-common@abigail.nl).
BUGS AND IRRITATIONS
Bound to be plenty.
For a start, there are many common regexes missing. Send them in to regexp-common@abigail.nl.
COPYRIGHT
Copyright (c) 2001 - 2002, Damian Conway. All Rights Reserved.
This module is free software. It may be used, redistributed
and/or modified under the terms of the Perl Artistic License
(see http://www.perl.com/perl/misc/Artistic.html)