NAME

Regex::Common::delimited -- provides a regex for delimited strings

SYNOPSIS

use Regex::Common qw /delimited/;

while (<>) {
    /$RE{delimited}{-delim=>'"'}/  and print 'a \" delimited string';
    /$RE{delimited}{-delim=>'/'}/  and print 'a \/ delimited string';
}

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{delimited}{-delim}{-cdelim}{-esc}

Returns a pattern that matches a single-character-delimited substring, with optional internal escaping of the delimiter.

When -delim = S> is specified, each character in the sequence S is a possible delimiter. There is no default delimiter, so this flag must always be specified.

By default, the closing delimiter is the same character as the opening delimiter. If this is not wanted, for instance, if you want to match a string with symmetric delimiters, you can specify the closing delimiter(s) with -cdelim = S>. Each character in S is matched with the corresponding character supplied with the -delim option. If the -cdelim option has less characters than the -delim option, the last character is repeated as often as necessary. If the -cdelim option has more characters than the -delim option, the extra characters are ignored.

If -esc = S> is specified, each character in the sequence S is the delimiter for the corresponding character in the -delim=S list. The default escape is backslash.

For example:

$RE{delimited}{-delim=>'"'}               # match "a \" delimited string"
$RE{delimited}{-delim=>'"'}{-esc=>'"'}    # match "a "" delimited string"
$RE{delimited}{-delim=>'/'}               # match /a \/ delimited string/
$RE{delimited}{-delim=>q{'"}}             # match "string" or 'string'
$RE{delimited}{-delim=>"("}{-cdelim=>")"} # match (string)

Under -keep (See Regex::Common):

$1

captures the entire match

$2

captures the opening delimiter

$3

captures delimited portion of the string

$4

captures the closing delimiter

$RE{quoted}{-esc}

A synonym for $RE {delimited} {-delim => q {'"`}} {...}.

$RE {bquoted} {-esc}

This is a pattern which matches delimited strings, where the delimiters are a set of matching brackets. Currently, this comes 85 pairs. This includes the 60 pairs of bidirection paired brackets, as listed in http://www.unicode.org/Public/UNIDATA/BidiBrackets.txt.

The other 25 pairs are the quotation marks, the double quotation marks, the single and double pointing quoation marks, the heavy single and double commas, 4 pairs of top-bottom parenthesis and brackets, 9 pairs of presentation form for vertical brackets, and the low paraphrase, raised omission, substitution, double substitution, and transposition brackets.

In a future update, pairs may be added (or deleted).

This pattern requires perl 5.14.0 or higher.

For a full list of bracket pairs, inspect the output of Regex::Common::delimited::bracket_pair (), which returns a list of two element arrays, each holding the Unicode names of matching pair of delimiters.

The {-esc => S } works as in the $RE {delimited} pattern.

If {-keep} is given, the following things will be captured:

$1

captures the entire match

$2

captures the opening delimiter

$3

captures delimited portion of the string

$4

captures the closing delimiter

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).