Seite 1 von 1

Neu in Python: Probleme mit Regex

Verfasst: Sonntag 9. Dezember 2018, 01:57
von jecko16
Hallo liebe Coder,

ich habe seit einigen Wochen mit Python angefangen und bin nun bei Regex angekommen. Ich habe schon ziemlich fast alles durch gelesen und werde einfach nicht schlau daraus.

Hier ein Beispiel:
Ich will eine Funktion "contains_braketpair" erstellen, die überprüft, ob ein Text genau eine öffnende "(" und eine schließende Klammer ")" enthält. Die öffnende muss vor der schließenden Klammer kommen. Vor der öffnenden, zwischen öffnender und schließender sowie hinter der schließenden Klammer können beliebig viele andere Zeichen sein. Diese Zeichen dürfen nur nicht "(" oder ")" sein.

Nun habe ich es bis jetzt so hingeschrieben und weiß jetzt nicht was ich weiter tun muss um die besagten Klammern zu überprüfen.

Code: Alles auswählen

import re
def contains_braketpair(text):
    
    re_braketpair = re.search(, text, )

# Hier habe ich einige Asserts zum testen aufgelistet
assert contains_braketpair("some(more)text")
assert contains_braketpair("some()text")
assert contains_braketpair("(more)text")
assert contains_braketpair("some(more)")
assert contains_braketpair("(more)")
assert contains_braketpair("some()")
assert contains_braketpair("()")
assert contains_braketpair("\n()")

Mit re_braketpair möchte ich mit re.search nach den Klammern suchen.


Ich bitte um Hilfe


LG

Justin

Re: Neu in Python: Probleme mit Regex

Verfasst: Sonntag 9. Dezember 2018, 08:30
von nezzcarth
Ich sehe in deinem Beispiel keinen regulären Ausdruck. Was hast du denn bisher versucht? Schau dir mal an, wie komplementäre Sets mit dem Operator "^" funktionieren. So kann man das lösen.

Re: Neu in Python: Probleme mit Regex

Verfasst: Sonntag 9. Dezember 2018, 08:58
von snafu
search() ist hier schonmal richtig. Du brauchst halt: Öffnende Klammer - beliebiger Text - schließende Klammer. Beachte außerdem dass die Klammern spezielle Regex-Zeichen darstellen. Du musst noch etwas tun, damit sie als reiner Text und nicht in ihrer speziellen Bedeutung interpretiert werden. Mehr Hilfe möchte ich nicht geben, da sonst kein Lerneffekt da ist.

Re: Neu in Python: Probleme mit Regex

Verfasst: Sonntag 9. Dezember 2018, 10:00
von Sirius3
@snafu: Du hast noch nicht die Einschränkung vergessen, dass es exakt ein Klammernpaar geben muß, wobei die Beispiele nur einen einfachen Fall abprüfen.