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!!!