Brauche Hilfe bei re.split

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
AlphaX2
User
Beiträge: 53
Registriert: Dienstag 28. Juni 2011, 10:42

Hallo Leute,

im Moment hab ich ein Problem bei dem ich nicht so recht weiter komme. Ich habe eine Eingabe von Zahlen, inkl. Rechenzeichen, die ich auf folgende Weise mit re splitte:

Code: Alles auswählen

split = re.split(r'(\D)', eingabe)
dabei spuckt er mir sowohl die Zahlen als auch Rechenzeichen aus, soweit so gut - so solls sein.

Mein Problem ist jetzt folgendes: Bei der Variante oben wird bei allen Zeichen gesplittet, die keine Zahlen sind, also auch bei ".", was aber bei Zahlen die eben nicht glatt sind ein Problem ist, und irgendwie hab ich schon x-Varianten mit \. probiert und weiß nicht so recht wie ich es hinbekomme, dass eben bei "." nicht gesplittet wird, alles andere normal geht. Weitere Idee war ihn auf +-*/ festzulegen, aber das klappte auch nicht ich hab dann immer alles in einem String bekommen. Sind eben meine ersten Schritte mit re. :(

Ein kleines Code-Beispiel dazu, wäre die Sahnehaube. Vielleicht reicht aber schon ein Tipp! :)

Danke!

AlphaX2
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

guckstu hier. Ist zwar nicht mit re.split(), aber vielleicht hilft's dir ja trotzdem.
Gruß,
Mick.
In specifications, Murphy's Law supersedes Ohm's.
BlackJack

Was hat denn bei den Rechenzeichen nicht funktioniert?

Code: Alles auswählen

In [36]: re.split(r'([-+*/])', '1.2 + 3.4 * 4.5')
Out[36]: ['1.2 ', '+', ' 3.4 ', '*', ' 4.5']
AlphaX2
User
Beiträge: 53
Registriert: Dienstag 28. Juni 2011, 10:42

BlackJack hat geschrieben:Was hat denn bei den Rechenzeichen nicht funktioniert?

Code: Alles auswählen

In [36]: re.split(r'([-+*/])', '1.2 + 3.4 * 4.5')
Out[36]: ['1.2 ', '+', ' 3.4 ', '*', ' 4.5']
Ich hatte es nicht in eckige Klammern gesetzt, gibt es dazu eigentlich nochmal eine Seite wo man das gut verständlich nachlesen kann. Denn die normale Doku hab ich mir angesehen und da hatte es eben nicht wirklich "klick gemacht", bzw. hab ich vieles aus/rumprobiert.

Vielen vielen Dank dafür!

AlphaX2
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Meinst du mit normaler Doku das re Tutorial in der offiziellen Dokumentation?
Antworten