Laden...

Dateiname mit Regex Splitten

3 Antworten
1,491 Aufrufe
Letzter Beitrag: vor 4 Monaten
Dateiname mit Regex Splitten

Hallo Forum,

Ich soll einen Dateinamen aufsplitten dafür ist Regex doch wie geschaffen doch irgendwie schaffe ich es nicht den String zu zerteilen.

Zu meinem Problem...

Ich habe zb.: Dateien wie unten angeführt Die erste Ausgabe ist Standard es kann aber auch vorkommen das die gleiche Datei im Format zu Punkt 2 erstellt wird.

  1. 91251.00 5776501_20_2025-07-24_T06-41-10.csv
  2. 91251.00 5776501-020_20_2025-07-24_T06-41-10.csv

Folgender Regex funktioniert zu Punkt 1

  • ^(?'wznr'[0-9]{5}.[0-9]{2})\s(?'toolnummer'[0-9]{7,8})_(?'duplo'[0-9]{1,3})_(?<date>.{10})_T(?'hour'.{2})

wenn ich nun den Teil mit duplo erweitere geht gar nix mehr aber wenn ich den Regex alleine anwende funktioniert dieser bedingt zumindest laut Regex101

((?(?=-\G[0-9]{3})|_(?'duplo'[0-9]{1,3})))

Das was ich erreichen möchte ist praktisch in den Regex eine if-else einzubetten wenn -020_20dann die Zahl hinter dem Unterstrich.

Kann mir da jemand helfen BITTE

^(?'wznr'[0-9]{5}.[0-9]{2})\s(?'toolnummer'[0-9]{7,8})(?:(?:-[0-9]{3}_)|(?:_))(?'duplo'[0-9]{1,3})_(?<date>.{10})_T(?'hour'.{2})

Den Unterstrich vor der duplo Gruppe habe ich durch das hier ersetzt:

(?:(?:-[0-9]{3}_)|(?:_))

Matche entweder:
(

  • Minus
  • 3 Ziffern
  • Einen Unterstrich

)
oder
(

  • einen Unterstrich

)

Edit:

Solltest du bereits die komplette Anforderung beschrieben haben, brauchst du eigentlich kein Entweder-oder und kannst einfach das `-20` optional vor dem Unterstrich von duplo matchen: (?:-[0-9]{3})?

^(?'wznr'[0-9]{5}.[0-9]{2})\s(?'toolnummer'[0-9]{7,8})(?:-[0-9]{3})?_(?'duplo'[0-9]{1,3})_(?<date>.{10})_T(?'hour'.{2})

Danke dannoe das ist SUPER