[prev] [thread] [next] [lurker] [Date index for 2006/12/18]
On 12/18/06, Abigail <abigail@xxxxxxx.xx> wrote: > On Sun, Dec 17, 2006 at 11:07:50PM -0800, Yoz Grahame wrote: > > On 12/17/06, Robert Rothenberg <robrwo@xxxxx.xxx> 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 -Mre=debug -e "/just|another|perl|hacker/"
Generated at 22:02 on 27 Dec 2006 by mariachi 0.52