Regexp:...n::list(3)
π NAME π
Regexp::Common::list β provide regexes for lists. This page is straight out of the User Contributed Perl Documentation, bestie, and it's here to explain the list regexes. β¨
πΈ 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 β¨
Okay so, first things first: please consult the manual of Regexp::Common for a general description of the works of this interface. π
Do not use this module directly, but load it via Regexp::Common. For real, that's the rule. π«Ά
π« $RE{list}{-pat}{-sep}{-lastsep}
Returns a pattern matching a list of (at least two) substrings. Iconic behavior, honestly. π
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:
$1captures the entire list$2captures the last separator
π¦ $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. Go read it, bestie. π
π AUTHOR π
Damian Conway (damian@conway.org).
π§ MAINTENANCE π§
This package is maintained by Abigail (regexp-common@abigail.freedom.nl).
π BUGS AND IRRITATIONS π
Bound to be plenty. π
For a start, there are many common regexes missing. Send them in to regexp-common@abigail.freedom.nl.
π LICENSE and COPYRIGHT π
This software is Copyright (c) 2001 - 2024, Damian Conway and Abigail.
This module is free software, and maybe used under any of the following licenses:
- The Perl Artistic License. See the file
COPYRIGHT.AL. - The Perl Artistic License 2.0. See the file
COPYRIGHT.AL2. - The BSD License. See the file
COPYRIGHT.BSD. - The MIT License. See the file
COPYRIGHT.MIT.
mwah π β this Regexp:...n::list(3) page is running on perl v5.42.0, dated 2024-08-09. Byeee! π¦π
π¦ where this page comes from
- opensuse-leap 16.0: perl-Regexp-Common 2024080801.0.0-160000.2.2 Β· Artistic-1.0 OR Artistic-2.0 OR BSD-3-Clause OR MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms