in reply to Regex Parsing Style
my $out;
for ($in) {
pos = 0;
for (;;) {
if (/\G ([^\\]+) /xsgc) { $out .= $1; }
if (/\G \\u([0-9a-fA-F]{4}) /xsgc) { $out .= chr(hex($1)); next; }
if (/\G \\([tnfr]) /xsgc) { $out .= $CONTROL_CODE{$1}; next; }
if (/\G \\(.) /xsgc) { $out .= $1; next; }
if (/\G \z /xsgc) { last; }
die; # Ends with unescaped "\".
}
}
printf("U+%04x\n", ord($_)) for $out =~ /(.)/sg;
Update: Fixed arrangement of conditions.
Update: Changed /\Z/ to /\z/.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Regex Parsing Style
by Jim (Curate) on Nov 26, 2010 at 00:35 UTC | |
by aquarium (Curate) on Nov 26, 2010 at 03:12 UTC | |
by Jim (Curate) on Nov 26, 2010 at 05:13 UTC | |
by aquarium (Curate) on Nov 28, 2010 at 23:44 UTC | |
by ikegami (Patriarch) on Nov 26, 2010 at 00:39 UTC | |
by Jim (Curate) on Nov 26, 2010 at 06:39 UTC | |
by ikegami (Patriarch) on Nov 26, 2010 at 06:50 UTC | |
by Jim (Curate) on Nov 26, 2010 at 15:57 UTC | |
|