Why did Quora choose Python for its development?

Roy Smith roy at panix.com
Fri May 27 09:47:21 EDT 2011


In article <948l8nF33pU1 at mid.individual.net>,
 Gregory Ewing <greg.ewing at canterbury.ac.nz> wrote:

> John Bokma wrote:
> 
> > A Perl programmer will call this line noise:
> > 
> > double_word_re = re.compile(r"\b(?P<word>\w+)\s+(?P=word)(?!\w)",
> >                             re.IGNORECASE)

One of the truly awesome things about the Python re library is that it 
lets you write complex regexes like this:

pattern = r"""\b                     # beginning of line
              (?P<word>\w+)          # a word
              \s+                    # some whitespace
              (?P=word)(?!\w)        # the same word again
           """
double_word_re = re.compile(pattern,  re.I | re.X)

Sometimes regex really is the best tool.  It's often the most compact, 
or fastest, or clearest way to express something complicated.  
Fortunately, re.X mode gives you a way to write truly monster regexes 
and still having them not be total line noise.

It's a shame that the Python community has evolved to be so anti-regex 
that most people never consider using them.  While Perl's attitude to 
regex may be "when the only tool you have is a hammer, everything looks 
like a nail", Python's seems to be, "I've got a great collection of all 
kinds of neat tools, so I'm going to pretend the hammer that's in there 
doesn't exist because I once smashed my thumb with it and it hurt a lot".



More information about the Python-list mailing list