Hallo zusammen,
ich bin neu bei Python, so hoffe ich, dass meine Fragen nicht so dümmlich sind, wie ich mich fühle .
Ich arbeite an eine regular expression, die die unterschiedlichen Datumformate nehmen soll. Ich habe 3 verschiedenen Formate:
JJJJ-MM-TT
TT.MM.JJJJ
MM/TT/JJJJ
Ich habe so das geschrieben:
REGEX_DATE_1 =re.compile(r"""
(?P<year1>\d\d\d\d)-(?P<month1>\d?\d)-(?P<day1>\d?\d)|
(?P<day1>\d?\d).(?P<month1>\d?\d).(?P<year1>\d\d\d\d)|
(?P<month1>\d?\d)/(?P<day1>\d?\d)/(?P<year1>\d\d\d\d)\s*$""", re.UNICODE | re.X )
aber der Compiler zeigt der Error:
Error: redefinition of group name 'day1' as group 4; was group 3
Wo liegt den Fehler und gibt es andere art das zu machen Ohne 9 unterschiedlichen groups zu definieren (year1a, year1b,...usw).
Danke im Voraus
Josef
Labels einer re
@Josef: Der Fehler liegt darin, dass es jeden Gruppennamen nur einmal geben darf. Womit im Grunde auch der zweite Teil der Frage beantwortet ist.
@Josef
BlackJack hat es ja schon verraten. Die Frage ist, wie du weitermachst. Ich persoenlich halte es fuer angezeigt, 3 Ausdruecke zu definieren, welche alle dieselben Gruppen-Namen definiern
Dann iterierst du darueber, und matcht jeden einzelnen. Wenn's einen Treffer gibt, ist das der Gewinner, und der Rest des Codes kann mit einem Match-Objekt mit bekannten Gruppennamen arbeiten.
BlackJack hat es ja schon verraten. Die Frage ist, wie du weitermachst. Ich persoenlich halte es fuer angezeigt, 3 Ausdruecke zu definieren, welche alle dieselben Gruppen-Namen definiern
Dann iterierst du darueber, und matcht jeden einzelnen. Wenn's einen Treffer gibt, ist das der Gewinner, und der Rest des Codes kann mit einem Match-Objekt mit bekannten Gruppennamen arbeiten.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich gebe auch noch mal den Hinweis auf das `datetime`-Modul und `strptime`. Evtl. ist das ja eine Alternative für Dich.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert