Ein Regulärer Ausdruck soll wie üblich einen ganz bestimmten Teil in einem String herausfiltern, aber es tut es nicht wie er es sollte. Wo liegt mein Fehler?:
Code: Alles auswählen
>>> import re
>>> text="""<td><a href="/cgi-bin/info.pl?sid=EEDFMVQFIEXGQDTR&alli=R42">Die Heilige Suche</a> [R42]</td></tr><tr><td>Metaallianz</td><td><a href="/cgi-bin/info.pl?sid=EEDFMVQFIEXGQDTR&meta=FAA">Foederation Auserwaehlter Allianzen</a> [FAA]</td></tr><tr><th colspan=2>Planeten (insgesamt 31)</th></tr><tr><td>Name (Koordinaten)</td><td>Punkte</td></tr><tr><td><a href="/cgi-bin/info.pl?sid=EEDFMVQFIEXGQDTR&coord=555763A">Meso</a> (555:763:A)</td><td>253</td>"""
>>> p=re.compile('<td><a href="/cgi-bin/info\.pl.*?">(.+?)</a> \(([\dA-Z:]+?)\)</td><td>([\d\.]+?)</td>',re.I)
>>> l=p.findall(text)
>>>
>>>
>>> l
[('Die Heilige Suche</a> [R42]</td></tr><tr><td>Metaallianz</td><td><a href="/cgi-bin/info.pl?sid=EEDFMVQFIEXGQDTR&meta=FAA">Foederation Auserwaehlter Allianzen</a> [FAA]</td></tr><tr><th colspan=2>Planeten (insgesamt 31)</th></tr><tr><td>Name (Koordinaten)</td><td>Punkte</td></tr><tr><td><a href="/cgi-bin/info.pl?sid=EEDFMVQFIEXGQDTR&coord=555763A">Meso', '555:763:A', '253')]
Stattdessen sollte er aber das hier liefern und dabei nur einen ganz anderen Teil (suchtext) verwerten:
Code: Alles auswählen
#suchtext="""<td><a href="/cgi-bin/info.pl?sid=EEDFMVQFIEXGQDTR&coord=555763A">Meso</a> (555:763:A)</td><td>253</td>"""
[('Meso', '555:763:A', '253')]
liegt der Fehler an mir oder an Python?