Seite 1 von 1

string spliten

Verfasst: Sonntag 17. Januar 2010, 16:13
von zahi
hallo zusammen ich hab eine frage
wie kann ich einen sting sinvoll spliten

zb kennzeichen AA02 oder B2710

wie kann ich diese strings so trennen das ich buchstaben und zahlen getrennt hab?
mit split() hat es nicht geklappt

mfg

Verfasst: Sonntag 17. Januar 2010, 16:19
von EyDu
Hallo.

Das Stichwort lautet reguläre Ausdrücke.

Sebastian

Verfasst: Sonntag 17. Januar 2010, 17:00
von cofi
Passend dazu das Regexp Howto, sehr lesenswert.

Die Alternative waere uebrigens ein eigener Tokenizer, da kommen `str.isalpha` und `str.isdigit` zur Hilfe und machen das auch nicht schwieriger,

Verfasst: Sonntag 17. Januar 2010, 20:46
von zahi
hmmm der string ist ein unicode und ich kriege als fehler das es unicode ist und es nicht geht wie kann ich in python den casten ?geht das überhaupt?

Verfasst: Sonntag 17. Januar 2010, 20:58
von cofi
Bei was bekommst du den "Fehler"? Und wie sieht der genaue Traceback aus?
Nein, casten geht nicht. Python ist stark typisiert. Allerdings kann man das umwandeln lassen, ABER das will man nicht, meistens zumindest.
Also: Need Infos.

Verfasst: Sonntag 17. Januar 2010, 21:08
von zahi
also ich weiche immer mehr von meinem eigenlichen vorhaben ab
ich hab jetzt einen str() zb M:NE1985 und nun wollt ich davon das letzte zeichen von extrahieren und es in eine variable speichern
dabei bin ich grad auf eine Last() widget gestossen aber ich kann es irgend wie nicht einsetzen ?ist das jetzt python versions abhängig?

Verfasst: Sonntag 17. Januar 2010, 21:11
von jbs

Code: Alles auswählen

c="M:NE1985"[-1]

Verfasst: Sonntag 17. Januar 2010, 21:20
von cofi
zahi: Erzaehl uns doch mal, was du eigentlich machen willst - vorrausgesetzt jbs' Vorschlag hilft dir nicht.

Verfasst: Sonntag 17. Januar 2010, 21:23
von zahi
hey danke auf so was wäre ich nicht gekommen :D

Verfasst: Sonntag 17. Januar 2010, 21:29
von /me
zahi hat geschrieben:hey danke auf so was wäre ich nicht gekommen :D
Arbeite mal das Tutorial durch.

Diese Syntax findet sich ziemlich weit vorne unter http://docs.python.org/tutorial/introdu ... ml#strings

Verfasst: Sonntag 17. Januar 2010, 23:22
von sma

Code: Alles auswählen

import re
for s in "AA02", "B2710":
    print re.findall("([A-Z]+)([0-9]+)", s)
Stefan

Verfasst: Montag 18. Januar 2010, 11:15
von zahi
danke das klappt alles super ich hab jetzt alle möglichkeiten ausprobiert :D
jetzt versuch ich mal die vorderen zwei zu trennen
ich geh davon mal aus das es so ähnlich geht nur mit einem anderen befehl

Code: Alles auswählen

import re
for s in "AA02", "B2710":
    print re.findall("([A-Z]+)([0-9]+)", s)

Verfasst: Montag 18. Januar 2010, 11:32
von /me
zahi hat geschrieben:danke das klappt alles super ich hab jetzt alle möglichkeiten ausprobiert :D
jetzt versuch ich mal die vorderen zwei zu trennen
Tu dir und uns bitte den Gefallen und beschreibe dein Problem so, dass man möglichst nicht über die Fragestellung als solche rätseln muss. Was heißt "die vorderen zwei zu trennen"? Zwei Listeneinträge? Zwei Zeichen? Was?

Verfasst: Montag 18. Januar 2010, 14:27
von zahi
also ich hatte eben einen string HH:ME0204 wovon ich den letzen string getrennt hab nun will ich die ersten beiden zeichen in einem string speichern

Verfasst: Montag 18. Januar 2010, 14:46
von /me
zahi hat geschrieben:also ich hatte eben einen string HH:ME0204 wovon ich den letzen string getrennt hab nun will ich die ersten beiden zeichen in einem string speichern
Du hast einen String von dem du den letzten String getrennt hast? Wirr sind deine Worte und dunkel deiner Rede Sinn. Meinst du eventuell, dass du den Doppelpunkt als Trenner betrachtest und den String "HH:ME0204" daran in zwei Teile zerlegst?

Wie auch immer, die ersten zwei Zeichen eines Strings sind relativ einfach zu bekommen. Den Link auf das Tutorial hatte ich ja schon gepostet.