On Mon, Dec 18, 2006 at 12:47:58PM +0100, demerphq wrote: > On 12/18/06, Abigail <abig...@abigail.be> wrote: > >On Sun, Dec 17, 2006 at 11:07:50PM -0800, Yoz Grahame wrote: > >> On 12/17/06, Robert Rothenberg <rob...@gmail.com> wrote: > >> > > >> >Bad comparison: traditional regexps are much easier to read than the > >ones > >> >used in contemporary programming languages. > >> > >> PCRE-style regexp in Javascript: > >> regexp = /(\d{1,3}\.){3}\d{1,3}/; > >> > >> Traditional POSIX regexp in C: > >> char regexp[] = "\\([:digit:]\{1,3\}\\.\\)\\{3\\}[:digit:]\\{1,3\\}"; > >> > >> The second one is clearly the more horrific of the two hateful messes, > >> but I'll give you that it's *way* more fun to type if you just can't > >> get enough joyful bouncing on the backslash key. > >> (And traditional POSIX holds an even deeper hate - backslashes EITHER > >> switch a character from being a literal to a metacharacter, OR from a > >> metacharacter to a literal, depending on the character in question. > >> Consistency's for suckers, clearly.) > > > > > >Well, so does Perl, and so your PCRE example. The latter backslashes > >the d, turning the literal d into a metacharacter, and it backslashes > >the ., turning the metacharacter . into the literal . > > In Perl the rule is: If its an alpha-numeric char then escaping it > turns it into a meta pattern. If its non-alpha then escaping it turns > it into a literal. The latter rule is hard, and afaik applies to every > Perl. Hatefully tho perl will treat an unknown escape-alphanum > sequence as an unescaped char, not even warning.
$ perl -wle '"q" =~ /\q/ or print "Ping"' Unrecognized escape \q passed through at -e line 1. Which to me seems that Perl treats an unknown escape-alphanum as an unescape char and it warns it did so. Abigail
pgpvX0tnYiybH.pgp
Description: PGP signature