Pyparsing: Non-greedy matching?
Peter Fein
pfein at pobox.com
Thu Dec 30 22:22:07 EST 2004
On 12/31/04 03:00 AM CST, "Paul McGuire" <ptmcg at austin.rr._bogus_.com>
sayeth:
> Assuming that your <td> tag wont contain any nested <td> tag, you
> could define your data content as "everything up until I find
> '</td>'". For this you can use pyparsing's SkipTo element. I think
> if you define data as:
> data = SkipTo("</td>")
> then your code should start working better.
Hey! It does! ;) I just worked up (note to googlers- don't do this):
goodchars=printables.replace("<", "")
good_ab="<" + (~Literal(r"""/td>""") + SkipTo(">", include=True))
good_ab.setDebug(True)
simple=Word(goodchars)
complex=Combine(simple | good_ab, adjacent=False, joinString="")
data=Combine(OneOrMore(complex), adjacent=False, joinString=" ")
title4=title_open+data
But that would break for closers with more than one ">". Need to stop
thinking like these are regexps. Thanks - this is a great tool. ;)
--
Peter Fein pfein at pobox.com 773-575-0694
Basically, if you're not a utopianist, you're a schmuck. -J. Feldman
More information about the Python-list
mailing list