NAME
Regex::Common::list -- provide regexes for lists
SYNOPSIS
use Regex::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 Regex::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
Regex::Common for a general description of how to use this interface.
AUTHOR
Alceu Rodrigues de Freitas Junior <glasswalk3r@yahoo.com.br>
LICENSE and COPYRIGHT
This software is copyright (c) 2024 of Alceu Rodrigues de Freitas Junior, glasswalk3r at yahoo.com.br
This file is part of regex-common project.
regex-commonis free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
regex-common is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with regex-common. If not, see (http://www.gnu.org/licenses/).
The original project [Regex::Common](https://metacpan.org/pod/Regex::Common) is licensed through the MIT License, copyright (c) Damian Conway (damian@cs.monash.edu.au) and Abigail (regexp-common@abigail.be).