On 05/27/2011 03:47 PM, Roy Smith wrote:
In article<948l8nf33...@mid.individual.net>,
  Gregory Ewing<greg.ew...@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".

HAHAHAHAHAHA Very funny!

This thread is awsome.

Cheers
Karim
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to