Ich habe einige Probleme mit Python geben mir ein Ergebnis, das ich nicht erwarte. Hier ist ein Beispielcode:Python regulärer Ausdruck mit [: numeric:]
number = re.search(" [0-9] ", "test test2 test_ 2 333")
print number.groups()
number = re.search(" [[:digit:]] ", "test test2 test_ 2 333")
print number.groups()
Im ersten Block bekomme ich ein Objekt zurückgegeben, aber mit nichts drin. Wo ich denke, sollte ich die Zeichenfolge "2" bekommen.
Im zweiten Block bekomme ich nicht einmal ein Objekt, wo ich die Zeichenfolge "2" erwarte.
Während, wenn ich das in bash alles sieht gut aus:
echo "test test2 test_ 2 333" | grep " [[:digit:]] "
echo "test test2 test_ 2 333" | grep " [0-9] "
Kann mir jemand bitte helfen?
Das funktioniert perfekt. Und während ich wartete, arbeitete ich weiter daran und entdeckte "re.finditer", was auch gut funktionierte. Übrigens habe ich gerade festgestellt, dass POSIX-Zeichenklassen von Python nicht unterstützt werden. – jdcaron
Froh, dass du den Rest ausgerechnet hast! Die anderen Antworten sind viel umfassender. (Ich wurde unerwartet weggezogen und bekam keine Gelegenheit, etwas näher auszuführen.) – bernie
In der Tat, ich möchte Sie bitten, die Antwort von Laurence Gonsalves zu akzeptieren (falls das überhaupt möglich ist): http: // stackoverflow. com/questions/994178/Python-Regular-Expression-mit-numerischen/994218 # 994218 – bernie