in reply to Weird quoting with /x modifier
This returned:use strict; use warnings; use YAPE::Regex::Explain; my $regex1 = qr{\QHello# World\E}x; my $parser1 = YAPE::Regex::Explain->new($regex1)->explain; print "$parser1\n"; print "*" x 20; print "\n"; my $regex2 = qr{Hello\#\ World}x; my $parser2 = YAPE::Regex::Explain->new($regex2)->explain; print "$parser2\n";
Note the addition of the "\E" at the end of the first explanation, but not the second.The regular expression: (?x-ims:Hello\#\ World\\E) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?x-ims: group, but do not capture (disregarding whitespace and comments) (case-sensitive) (with ^ and $ matching normally) (with . not matching \n): ---------------------------------------------------------------------- Hello 'Hello' ---------------------------------------------------------------------- \# '#' ---------------------------------------------------------------------- \ ' ' ---------------------------------------------------------------------- World 'World' ---------------------------------------------------------------------- \\ '\' ---------------------------------------------------------------------- E 'E' ---------------------------------------------------------------------- ) end of grouping ---------------------------------------------------------------------- ******************** The regular expression: (?x-ims:Hello\#\ World) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?x-ims: group, but do not capture (disregarding whitespace and comments) (case-sensitive) (with ^ and $ matching normally) (with . not matching \n): ---------------------------------------------------------------------- Hello 'Hello' ---------------------------------------------------------------------- \# '#' ---------------------------------------------------------------------- \ ' ' ---------------------------------------------------------------------- World 'World' ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------
Note also that the "\Q" is dropped by YAPE::Regex::Explain.
The behaviour is constant across 5.8.9, 5.10.1 and 5.12.1 with YAPE::Regex::Explain 3.011
HTH
UPDATE:
From perldoc perlre:
(?#text)
A comment. The text is ignored. If the /x modifier enables whitespace formatting, a simple # will suffice. Note that Perl closes the comment as soon as it sees a ), so there is no way to put a literal ) in the comment.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Weird quoting with /x modifier
by proceng (Scribe) on May 29, 2010 at 22:40 UTC | |
|
Re^2: Weird quoting with /x modifier
by ykar (Acolyte) on May 29, 2010 at 22:25 UTC |