Stack Overflow moderator “animuson”

Mats Peterson matsp999 at aim.com
Wed Jul 10 08:22:11 EDT 2013


Chris Angelico <rosuav at gmail.com> wrote:
> On Wed, Jul 10, 2013 at 7:01 PM, Mats Peterson <matsp999 at aim.com> wrote:
>> Chris Angelico <rosuav at 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/



More information about the Python-list mailing list