Seite 1 von 1
pattern match
Verfasst: Sonntag 20. März 2011, 17:59
von dirtylion
hi,
Ich versuche schon seit ein paar stunden einen richtigen match auf ein wort zu erzielen.. leider ohne erfolg
elif result[count] == "[0-9]":
print datum[count], uhrzeit[count], heim[count], gast[count], result[count]
count = count + 1
es geht mir hier um "elif result[count] == "[0-9]":"
wenn die zahl in der varieable auf 0-9 match sollte er die funktion dadrunter ausführen.
ich bin bin von tcl zu python umgestiegen und wollte um hilfe bitten.
Danke
Re: pattern match
Verfasst: Sonntag 20. März 2011, 18:01
von deets
Zuerstmal: ist das eine wirkliche *Zahl*, oder ein String? Python nimmt das im Gegensatz zu TCL sehr genau - es ist ein himmelweiter unterschied, ob du "10" oder 10 schreibst.
Ich unterstelle mal ne zahl, dann waer's einfach nur:
Re: pattern match
Verfasst: Sonntag 20. März 2011, 18:06
von dirtylion
es ist eigentlich ein fussball ergebnis
z.b 0:0
und ich wollte auf [0-9]:[0-9] matchen.
wenn ein ergebnis in der variable steht sollte er die funktion ausführen.
in tcl ging das einfach: if $result[count] == "[0-9]:[0-9]"
oder if $result[count] == ".*?:.*?"
Re: pattern match
Verfasst: Sonntag 20. März 2011, 18:32
von deets
Also, das sind dann denke ich Strings. Und die Syntax legt ein regulaeres Ausdrucks-Matching oder fnmatch nahe. Es saehe also so aus:
Code: Alles auswählen
>>> import re
>>> ergebnis = "0:3"
>>> re.match("[0-9]+:[0-9]+",ergebnis)
<_sre.SRE_Match object at 0xc7d78>
Ich bin aber ehrlich gesagt nicht davon ueberzeugt, dass das wirklich geschickt ist. Denn ein Fussballergebnis ist ja was numerisches.
Es sollte also stattdessen zB ein Tupel sein:
Code: Alles auswählen
>>> ergebnis = tuple(int(tor) for tor in "3:0".split(":"))
(3, 0)
Nochmal der Hinweis: in Python werden die verschiedenen Datentypen streng getrennt, und das ist auch gut so!
Woher kommen denn diese Ergebnisse, und warum genau muessen die matchen, oder auch nicht?
Re: pattern match
Verfasst: Sonntag 20. März 2011, 18:46
von dirtylion
die daten hole ich mir von einer fussballseite und baue daraus ein script für die dreambox (enigma2)
welches dann die aktuellen spieltag daten ausgibt

danke !
Re: pattern match
Verfasst: Sonntag 20. März 2011, 19:13
von deets
Ah, ok. Dann ist eine reine Text-Verarbeitung ja ausreichend, und du kannst das mit der Tupelei vergessen.