Seite 1 von 1
String Vergleich -> Problem mit Regular-Expression
Verfasst: Dienstag 10. Juli 2007, 14:19
von Oswald_Mario
Hallo,
ich lese eine Zeile ein und möchte vergleichen, ob sie mit einem
gewissen Teilstring beginnt:
if (line == 'FormatEdgeSel*\n')
Wie setze ich den "*" - Operator richtig ein, damit er den String als richtig erkennt, wenn dieser bis zu diesem Operator mit dem Vergleichsstring übereinstimmt?
Leider habe ich nicht viel Erfahrung mit regulären Ausdrücken...
LG Mario
Verfasst: Dienstag 10. Juli 2007, 14:28
von rayo
Hi
Reicht dir line.startswith("FormatEdgeSel") nicht?
Gruss
Re: String Vergleich -> Problem mit Regular-Expression
Verfasst: Dienstag 10. Juli 2007, 14:50
von Zap
Oswald_Mario hat geschrieben:Wie setze ich den "*" - Operator richtig ein, damit er den String als richtig erkennt, wenn dieser bis zu diesem Operator mit dem Vergleichsstring übereinstimmt?
Leider habe ich nicht viel Erfahrung mit regulären Ausdrücken...
Hallo Mario, nur damit du nicht auf die falsche Bahn gerätst
:
Das was du da oben zusammengebaut hast war ein einfacher String, in dem auch das "*" Zeichen
ein einfaches Zeichen ist und kein Platzhalter.
Nur um Missverständnissen vorzugbeugen.
Für RegExp nutzt man in Python das Modul
re
Verfasst: Mittwoch 11. Juli 2007, 08:12
von Oswald_Mario
ok danke, der "startswith"-Befehl hat genau gepasst.
Gibt es dazu eigentlich die entsprechenden ähnliche Befehle wie
z.B. "contains" oder "endswith"?
Hat jemand eine Befehlsübersicht für Python?
LG Mario
Verfasst: Mittwoch 11. Juli 2007, 08:16
von Rebecca
Verfasst: Mittwoch 11. Juli 2007, 16:03
von BlackJack
Und man kann natürlich auch im Interpreter mit `dir()` und `help()` nachschauen was ein Objekt so bietet und auch gleich ein wenig experimentieren.
Code: Alles auswählen
In [4]: a = 'hallo'
In [5]: 'endswith' in dir(a)
Out[5]: True
In [6]: a.endswith('lo')
Out[6]: True
In [7]: 'll' in a
Out[7]: True
In [8]: 'x' in a
Out[8]: False
Verfasst: Mittwoch 11. Juli 2007, 16:21
von Oswald_Mario
Ok danke schonmal...
Da ich von C komme, tu ich mich einwenig schwer mit der Syntax.
Wie kann ich den einen logische Abfrage wie "startswith" negiert abfragen, sprich:
!(line.startswith("Hallo")) ???
Funktionieren in Python auch die logischen Verknüpfungsoperatoren wie
"&&" oder "||" ??
Folgende Codezeile funktioniert nicht:
if( (line1[31] == 'X') and (line2[31] == 'X') and !(line3.startswith('123') ):
LG Mario
Verfasst: Mittwoch 11. Juli 2007, 16:27
von Zap
Klar, bei python kann mans ja einfach mal in die shell hacken so wie mans sich erhofft
Meist kommt das was man erwartet
Code: Alles auswählen
>>> s = "Hallo"
>>> s.endswith("o")
True
>>> not s.endswith("o")
False
>>> True and True
True
>>> True and False
False
>>> True and not False
True
Verfasst: Mittwoch 11. Juli 2007, 16:41
von birkenfeld
Verfasst: Mittwoch 11. Juli 2007, 16:49
von Oswald_Mario
Danke!!!