Seite 1 von 1

Problem beim REGEX

Verfasst: Donnerstag 12. Januar 2012, 16:57
von Josef
Hallo zusammen,
ich versuche eine REGEX zu erzeugen, die das Datum eines Strings detektiert.
Die Formate, die ich detektieren will, sind:
JJJJ-MM-DD
DD.MM.JJJJ
MM/DD/JJJJ
Ich baue einen String, mit den drei Formate, so:

Code: Alles auswählen

startformats = r"""(\d\d\d\d-\d?\d-\d?\d)|
(\d?\d\.\d?\d\.\d\d\d\d)|
(\d?\d?/\d?\d/\d\d\d\d)\s*"""
Dann definiere ich die REGEX

Code: Alles auswählen

myregex = re.compile(r'^\s*'+startformats+r'\s*$', re.UNICODE)
Aber dadurch kann ich nur ein Datum des ersten Typus (ex: 1988-3-22) nehmen.
Warum funktionieren nicht die or (|) Anweisungen.

Danke im Voraus

Re: Problem beim REGEX

Verfasst: Donnerstag 12. Januar 2012, 17:13
von lunar
@Josef: Die funktionieren schon. Deine Muster stimmen nicht. Die Zeilenumbrüche in der Definition von "startformats" zählen zum Inhalt der Zeichenkette und mithin auch zum regulären Ausdruck. Folglich treffen die zweite und dritte Alternative nur dann zu, wenn das zu findende Datum am Anfang einer neuen Zeile steht.

Wieso tust Du nicht einfach das, was Dir in der letzten Diskussion vorgeschlagen wurde? Du wirst nicht ewig damit durchkommen, die Vorschläge voran gegangener Diskussionen zu ignorieren und stattdessen dieselbe Frage in leicht veränderter Form erneut zu stellen. Irgendwann antwortet dann niemand mehr. Ehrlich gesagt, habe ich obigen Hinweis auch nur gegeben, weil ich erst danach bemerkt habe, dass Du die Frage schon einmal gestellt und dort sämtliche Vorschläge offenbar ignoriert hast.

Re: Problem beim REGEX

Verfasst: Donnerstag 12. Januar 2012, 17:14
von deets
Gibt es einen Grund, warum du die Hinweise in dem ersten Thread von dir zu dem Thema ignorierst, und einen neuen aufmachst?

Re: Problem beim REGEX

Verfasst: Donnerstag 12. Januar 2012, 17:18
von Josef
@lunar: Danke für deine schnelle Antwort.
@deets: Sorry, aber ich habe eure Antwort nicht verstanden, und aus diesem Grund habe ich eine neue Frage gestellt. Eingentlich fande ich zu dumm, wieder euch zu fragen, was gemeint wird. :oops:

Beste Grüße fur beide

Edit (Leonidas): Geschlossen. Bitte weitere Diskussion im ursprünglichem Thread.