use Regexp::Common qw /delimited/; while (<>) { /$RE{delimited}{-delim=>'"'}/ and print 'a \" delimited string'; /$RE{delimited}{-delim=>'/'}/ and print 'a \/ delimited string'; }
Do not use this module directly, but load it via Regexp::Common.
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 Regexp::Common):
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:
For a start, there are many common regexes missing. Send them in to regexp-common@abigail.be.
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.