Regexp::Common::delimited -- provides a regex for delimited strings
use Regexp::Common qw /delimited/;
while (<>) {
/$RE{delimited}{-delim=>'"'}/ and print 'a \" delimited string';
/$RE{delimited}{-delim=>'/'}/ and print 'a \/ delimited string';
}
Please consult the manual of the Regexp::Common manpage for a general description
of the works of this interface.
Do not use this module directly, but load it via Regexp::Common.
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 the Regexp::Common manpage):
- $1
-
captures the entire match
- $2
-
captures the opening delimiter
- $3
-
captures delimited portion of the string
- $4
-
captures the closing delimiter
A synonym for $RE {delimited} {-delim => q {'"`}} {...}.
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
Regexp::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$1
-
captures the entire match
- $2$2
-
captures the opening delimiter
- $3$3
-
captures delimited portion of the string
- $4$4
-
captures the closing delimiter
the Regexp::Common manpage for a general description of how to use this interface.
Damian Conway (damian@conway.org)
This package is maintained by Abigail (regexp-common@abigail.be).
Bound to be plenty.
For a start, there are many common regexes missing.
Send them in to regexp-common@abigail.be.
This software is Copyright (c) 2001 - 2017, Damian Conway and Abigail.
This module is free software, and maybe used under any of the following
licenses:
1) The Perl Artistic License. See the file COPYRIGHT.AL.
2) The Perl Artistic License 2.0. See the file COPYRIGHT.AL2.
3) The BSD License. See the file COPYRIGHT.BSD.
4) The MIT License. See the file COPYRIGHT.MIT.
|