Regexp::Common::list(3pm)

Regexp::Common::list3pm

Usage

    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";
    }

Overview

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.

"$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":

$1

captures the entire list

$2

captures 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'}"

Maintenance

This package is maintained by Abigail ([email protected]).

Bugs and irritations

Bound to be plenty.

For a start, there are many common regexes missing. Send them in to [email protected].

Releases

12 releases since Debian 3.1 (Sarge); the text changed 10 times.

  1. 3.1
  2. 4.0
  3. 5.0
  4. 6.0
  5. 7
  6. 8
  7. 9
  8. 10–11
  9. 12
  10. 13
  11. Arch

Author

Damian Conway ([email protected])

From perl-regexp-common 2024080801-4 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.