in reply to Re^5: Perlre interpretation required (perfect dequote regex)
in thread Perlre interpretation required
Sorry Aristotle, but this is far from "unbreakable". In fact it doesn't even compile? You can't apply the /g modifier to qr//.
Your version
#! perl -slw use strict; require 5.008; sub make_dequote_rx { my @char = map quotemeta, @_; my $chars = join '', @char; my $rx = join( '|', map(qq[$_ (?: \\ . | $_$_ | [^$_] ) + $_], @char), qq[(?: \\ . | [^$chars] ) +], ); return qr/\G ( $rx )/x; ##You cannot apply /g to qr// } my $dequote = make_dequote_rx qw(' "); #" while( <DATA> ){ chomp; our $quoted; print; print "\t<$1>" while m[$dequote]g; print ''; } __DATA__ unquoted stuff "quoted stuff" unquoted stuff unquoted stuff 'quoted stuff' unquoted stuff unquoted stuff "quoted stuff with embedded 'alternate' quotes" unquote +d stuff unquoted stuff 'quoted stuff with embedded "alternate" quotes' unquote +d stuff unquoted stuff "quoted stuff with embedded ""like"" quotes" unquoted s +tuff unquoted stuff 'quoted stuff with embedded ''like'' quotes' unquoted s +tuff unquoted stuff "quoted stuff with embedded """"like"""" quotes" unquot +ed stuff unquoted stuff 'quoted stuff with embedded ''''like'''' quotes' unquot +ed stuff unquoted stuff "quoted 'stuff' with escaped \"like\" quotes" unquoted +stuff unquoted stuff 'quoted 'stuff' with escaped \'like\' quotes' unquoted +stuff unquoted stuff "quoted stuff with embedded ""like"" quotes and escaped + \"like\" quotes" unquoted stuff unquoted stuff 'quoted stuff with embedded ''like'' quotes and escaped + \'like\' quotes' unquoted stuff
Output
D:\Perl\test>junk unquoted stuff "quoted stuff" unquoted stuff <unquoted stuff "quoted stuff> unquoted stuff 'quoted stuff' unquoted stuff <unquoted stuff 'quoted stuff> unquoted stuff "quoted stuff with embedded 'alternate' quotes" unquote +d stuff <unquoted stuff "quoted stuff with embedded 'alternate> unquoted stuff 'quoted stuff with embedded "alternate" quotes' unquote +d stuff <unquoted stuff 'quoted stuff with embedded "alternate> unquoted stuff "quoted stuff with embedded ""like"" quotes" unquoted s +tuff <unquoted stuff "quoted stuff with embedded "> <"like"" quotes"> < unquoted stuff> unquoted stuff 'quoted stuff with embedded ''like'' quotes' unquoted s +tuff <unquoted stuff 'quoted stuff with embedded '> <'like'' quotes'> < unquoted stuff> unquoted stuff "quoted stuff with embedded """"like"""" quotes" unquot +ed stuff <unquoted stuff "quoted stuff with embedded "> <"""like"""" quotes"> < unquoted stuff> unquoted stuff 'quoted stuff with embedded ''''like'''' quotes' unquot +ed stuff <unquoted stuff 'quoted stuff with embedded '> <'''like'''' quotes'> < unquoted stuff> unquoted stuff "quoted 'stuff' with escaped \"like\" quotes" unquoted +stuff <unquoted stuff "quoted 'stuff> unquoted stuff 'quoted 'stuff' with escaped \'like\' quotes' unquoted +stuff <unquoted stuff 'quoted 'stuff> <' with escaped \'> <like\> <' quotes'> < unquoted stuff> unquoted stuff "quoted stuff with embedded ""like"" quotes and escaped + \"like\" quotes" unquoted stuff <unquoted stuff "quoted stuff with embedded "> <"like"" quotes and escaped \"> <like\> <" quotes"> < unquoted stuff> unquoted stuff 'quoted stuff with embedded ''like'' quotes and escaped + \'like\' quotes' unquoted stuff <unquoted stuff 'quoted stuff with embedded '> <'like'' quotes and escaped \'> <like\> <' quotes'> < unquoted stuff>
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^7: Perlre interpretation required (remember kids: test all code..)
by Aristotle (Chancellor) on May 04, 2003 at 13:35 UTC | |
by BrowserUk (Patriarch) on May 04, 2003 at 14:19 UTC | |
by Aristotle (Chancellor) on May 04, 2003 at 15:35 UTC |