Chris Angelico <ros...@gmail.com> wrote: > On Wed, Jul 10, 2013 at 7:01 PM, Mats Peterson <matsp...@aim.com> wrote: >> Chris Angelico <ros...@gmail.com> wrote: >>> I know what regular expressions are. I've used them in Perl, PHP, >>> JavaScript, Python, C++, Pike, and numerous text editors (which may >>> have been backed by one of the above languages, or may have been >>> something else). Doesn't change the fact that I have no idea what the >>> significance is of your post. >>> >>> ChrisA >> >> You do? And you haven't noticed the inferior performance of regular >> expressions in Python compared to Perl? Then you obviously haven't >> used them a lot. > > That would be correct. Why have I not used them all that much? Because > Python has way better ways of doing many things. Regexps are > notoriously hard to debug, largely because a nonmatching regex can't > give much information about _where_ it failed to match, and when I > parse strings, it's more often with (s)scanf notation instead - stuff > like this (Pike example as Python doesn't, afaik, have scanf support): > >> data="Hello, world! I am number 42."; >> sscanf(data,"Hello, %s! I am number %d.",foo,x); > (3) Result: 2 >> foo; > (4) Result: "world" >> x; > (5) Result: 42 > > Or a more complicated example: > > sscanf(Stdio.File("/proc/meminfo")->read(),"%{%s: %d%*s\n%}",array data); > mapping meminfo=(mapping)data; > > That builds up a mapping (Pike terminology for what Python calls a > dict) with the important information out of /proc/meminfo, something > like this: > > ([ > "MemTotal": 2026144, > "MemFree": 627652, > "Buffers": 183572, > "Cached": 380724, > ..... etc etc > ]) > > So, no. I haven't figured out that Perl's regular expressions > outperform Python's or Pike's or SciTE's, because I simply don't need > them all that much. With sscanf, I can at least get a partial match, > which tells me where to look for the problem. > > ChrisA
You're showing by these examples what regular expressions mean to you. Mats -- Mats Peterson http://alicja.homelinux.com/~mats/ -- http://mail.python.org/mailman/listinfo/python-list