Barcellona hat geschrieben:
Dein Problem ist zuerst einmal die Definition des Strings. Wenn du den obigen Code ausprobiert hättest, dann wüsstest du, dass das so nicht geht. Ein Backslash in einem String ist ein Escape-Zeichen. \t steht beispielsweise für einen Tabulator. Ein Backslash selber muss mit einem Backslash escaped werden.
Bei dem regulären Ausdruck wird es richtig fies. Ein Backslash in einem regulären Ausdruck benötigt ebenfalls einen Backslash als Escape-Zeichen. Da der Backslash
jetzt aber über eine Python-Zeichenkette kommt muss er noch einmal escaped werden. das führt dann zu Folgendem.
Dem kann man üblicherweise mit der Verwendung von Raw-Strings abhelfen. Dabei ist allerdings zu beachten, dass ein einzelner Backslash nicht das letzte Zeichen des Strings sein darf.
Code: Alles auswählen
>>> line= r"\test\"
SyntaxError: EOL while scanning string literal
>>> line= r"\test\ "
>>>
Der reguläre Ausdruck sähe dann so aus:
Wenn es nicht komplizierter wird reicht hier übrigens ein