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
pattern match
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:
Ich unterstelle mal ne zahl, dann waer's einfach nur:
Code: Alles auswählen
if 0 <= count < 10:
....
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] == ".*?:.*?"
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] == ".*?:.*?"
Also, das sind dann denke ich Strings. Und die Syntax legt ein regulaeres Ausdrucks-Matching oder fnmatch nahe. Es saehe also so aus:
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:
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?
Code: Alles auswählen
>>> import re
>>> ergebnis = "0:3"
>>> re.match("[0-9]+:[0-9]+",ergebnis)
<_sre.SRE_Match object at 0xc7d78>
Es sollte also stattdessen zB ein Tupel sein:
Code: Alles auswählen
>>> ergebnis = tuple(int(tor) for tor in "3:0".split(":"))
(3, 0)
Woher kommen denn diese Ergebnisse, und warum genau muessen die matchen, oder auch nicht?
Ah, ok. Dann ist eine reine Text-Verarbeitung ja ausreichend, und du kannst das mit der Tupelei vergessen.