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

Attachment: pgpvX0tnYiybH.pgp
Description: PGP signature

Reply via email to