Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1792to1796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datumformat mit regexp prüfen

Datumformat mit regexp prüfen
16.11.2020 13:30:01
MCO
Hallo zusammen!
Ich versuche, vor dem exportieren in eine textdatei den zusammengebauten String zu prüfen.
Im speziellen möchte ich die Jahreszahl mit abprüfen, die man eben 2-oder 4-stellig angeben kann.
Mein Halbwissen zu regexp habe ich aus https://www.vba-tutorial.de/applikation/regexp.htm
Die Stelle, an der mein Verständnis aufhört, hab ich mal skizziert.
? vergleiche("12555","(\d{2}|\d{4})") liefert "WAHR", obwohl ich doch nach meinem Verständnis 2 oder 4 stellige Zahl vorgegeben habe, oder?
Danke für´s Mitdenken
Gruß, MCO

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumformat mit regexp prüfen
16.11.2020 14:37:31
Yal
Jein. Die RegEx befragt "gibt es einen zweistellige oder vierstellige Text, den man als Zahl interpretieren kann", wobei in dem Fall zweistellig immer eine Untermenge von vierstellig, also zweite Teil nutzlos.
"(\d{2}\d{4})" fragt nach einem zweistellige gefolgt von einem 4-stellige Zahl, oder kürzer gesagt, ein 6-stellige Zahl.
Bei Datum kannst Du mit einem Tag ergänzen, eine Datum daraus errechnen und das Jahr rauslassen, wie es dir passt. Trotz RegEx müsstest Du auch noch prüfen, dass Monat kleiner-gleich 12 ist.
Viel Erfolg
Yal
AW: Datumformat mit regexp prüfen
17.11.2020 06:21:45
MCO
Danke yal!
Leider hast du die Schreibweise nicht genau wiedergegeben. Das Zeichen "|" hast du nicht beachtet, daher ist deine Interpretation richtig, aber nicht für mein Beispiel...
Ich habe das Zeichen verwendet aufgrund dieser Passage im Artikel:
In den Klammern können mit | auch Alternativen eingebaut werden, z. B.
And(i|reas), für Andi oder Andreas,
Wir gehen zu (dir|mir|uns|euch).

Dann würde für mich vergleiche("12555","(\d{2}|\d{4})") bedeuten, Ist 12555 eine 2- oder 4 stellige Zeichenfolge "die man als Zahl interpretieren kann".
Was ist daran falsch gedacht?
LG, MCO
Anzeige
AW: Datumformat mit regexp prüfen
17.11.2020 08:59:08
Yal
Hallo MCO,
nein, Du hast richtig interpretiert. Deine Verständnis vom | ist korrekt.
Es liegt an der Reihenfolge: wenn 4 Buchstaben nacheinander ein 4-stellig Zahl darstellen, dann bilden die 2 ersten Buchstaben auch einen Zahl.
Also ab dem Moment, wo der Zahl aus midestens 2 Buchstaben besteht, bekommst Du mit diesem RegEx immer die ersten 2 Buchstaben. Mehr nicht.
Umgekehrt würde (\d{4}|\d{2}) dann, wenn vorhanden, ein 4-stellige Zahl zurückgeben, wenn nicht dann ein 2-stelligen (wenn vorhanden). Dann müsstest trotzdem anschliessend prüfen, ob es die zurückgegebene Antwort 2 oder 4-stellig ist.
Viel Erfolg
Yal
Anzeige
Danke!
17.11.2020 12:27:44
MCO
Vielen Danke für die geduldige Erklärung :-)
Gruß, MCO

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige