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