Python und Regex
Verfasst: Samstag 7. November 2009, 23:30
Hallo,
ich versuche mich gerade ein kleines Programm zu schreiben, das eine .sam Datei einliest und diese auswertet. Aufgebaut ist diese Datei wie folgt: Sie besteht aus 10 Teilen, die jeweils mit einem Tab oder einem Leerzeichen getrennt sind. Die einzelnen Teile können aus Zahlen, Buchstaben und Sonderzeichen bestehen.
Ich muss die Teile 1, 4 und 10 auslesen und versuche dafür mit Regex zu arbeiten. Die Datei lese ich zeilenweise ein und bin auch schon soweit gekommen die Tabs durch andere Zeichen zu ersetzen, nur um zu schauen, ob er die richtige Stelle findet. Dann habe ich mit dem Pattern lookbehind gearbeitet (?=\t), der Fehler liegt nicht bei dem \t denn, wenn ich die Tabs ersetzt habe und dafür z.b. nach (?= !!!) suche, findet er auch die Stelle, jedoch kann ich nicht vernünftig draufzugreifen.
Zum Beispiel sieht meine Zeile so aus: 32434sdfsd233_ 34324sd2w3q, dann möchte ich, dass er mir die erste Zeichenfolge ausgibt, wenn ich jedoch nach dem Pattern ".*(?=\t)" suche, gibt er mir wieder die ganze zeile aus. Habe mit search, match, finditer, findall und dann jeweils mit den Listen oder match.group() gearbeitet. Aber nie das erwünschte Ergebnis erhalten, hat jemand eine Idee?
Wäre euch sehr dankbar.
Liebe Grüße,
Gianna
ich versuche mich gerade ein kleines Programm zu schreiben, das eine .sam Datei einliest und diese auswertet. Aufgebaut ist diese Datei wie folgt: Sie besteht aus 10 Teilen, die jeweils mit einem Tab oder einem Leerzeichen getrennt sind. Die einzelnen Teile können aus Zahlen, Buchstaben und Sonderzeichen bestehen.
Ich muss die Teile 1, 4 und 10 auslesen und versuche dafür mit Regex zu arbeiten. Die Datei lese ich zeilenweise ein und bin auch schon soweit gekommen die Tabs durch andere Zeichen zu ersetzen, nur um zu schauen, ob er die richtige Stelle findet. Dann habe ich mit dem Pattern lookbehind gearbeitet (?=\t), der Fehler liegt nicht bei dem \t denn, wenn ich die Tabs ersetzt habe und dafür z.b. nach (?= !!!) suche, findet er auch die Stelle, jedoch kann ich nicht vernünftig draufzugreifen.
Zum Beispiel sieht meine Zeile so aus: 32434sdfsd233_ 34324sd2w3q, dann möchte ich, dass er mir die erste Zeichenfolge ausgibt, wenn ich jedoch nach dem Pattern ".*(?=\t)" suche, gibt er mir wieder die ganze zeile aus. Habe mit search, match, finditer, findall und dann jeweils mit den Listen oder match.group() gearbeitet. Aber nie das erwünschte Ergebnis erhalten, hat jemand eine Idee?
Wäre euch sehr dankbar.
Liebe Grüße,
Gianna