Regular Expression Dateieendung ermitteln mit mehreren Punkten
Guten Morgen,
ich "füttere" ein externes Tool mit einer Regular Expression: (?<fileNameWithoutExtension>[^.]+)(?<ext>.*)
Aus dem Ergebnis [ext] -> Extension kann ich dann entscheiden was mit der Datei passieren soll z.B.: Test.zip --> Datei muss entpackt werden.
Das funktioniert alles ganz gut, sofern die Datei denn auch mit .zip endet.
Leider erhalte ich neuerdings Dateien mit Namen Test.txt.01012014.zip
Die RegExp funktioniert hier nicht mehr.
Leider bin ich kein "Regular Expression Guru" und weiss nicht wo ich hier ansetzen muss.
Normalerweise würde ich die Datei von hinten lesen (Revert) und dann bis zum ersten Punkt die Dateiendung auslesen -> piz. und dann wieder mit Revert auf .zip ändern.
Aber wie das in Regular Expression funktioniert habe ich keine Ahnung.
Irgendwie ist Regular Expression für mich ein Buch mit sieben Siegeln.
Hat irgendjemand eine Lösung wie ich das Ganze in einer Zeile mit Regular Expression lösen kann ?
Das Tool gibt es leider nicht her, irgendwas in rekusiven Schleifen o.ä. auszulesen.
Für Eure Hilfe wäre ich sehr dankbar.
ich "füttere" ein externes Tool mit einer Regular Expression: (?<fileNameWithoutExtension>[^.]+)(?<ext>.*)
Aus dem Ergebnis [ext] -> Extension kann ich dann entscheiden was mit der Datei passieren soll z.B.: Test.zip --> Datei muss entpackt werden.
Das funktioniert alles ganz gut, sofern die Datei denn auch mit .zip endet.
Leider erhalte ich neuerdings Dateien mit Namen Test.txt.01012014.zip
Die RegExp funktioniert hier nicht mehr.
Leider bin ich kein "Regular Expression Guru" und weiss nicht wo ich hier ansetzen muss.
Normalerweise würde ich die Datei von hinten lesen (Revert) und dann bis zum ersten Punkt die Dateiendung auslesen -> piz. und dann wieder mit Revert auf .zip ändern.
Aber wie das in Regular Expression funktioniert habe ich keine Ahnung.
Irgendwie ist Regular Expression für mich ein Buch mit sieben Siegeln.
Hat irgendjemand eine Lösung wie ich das Ganze in einer Zeile mit Regular Expression lösen kann ?
Das Tool gibt es leider nicht her, irgendwas in rekusiven Schleifen o.ä. auszulesen.
Für Eure Hilfe wäre ich sehr dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 231185
Url: https://administrator.de/forum/regular-expression-dateieendung-ermitteln-mit-mehreren-punkten-231185.html
Ausgedruckt am: 23.12.2024 um 13:12 Uhr
6 Kommentare
Neuester Kommentar
Hallo StefanLausL,
Dein Regex dazu kann so aussehen
ausgeschrieben bedeutet das Regex folgendes:
Regular Expressions Tutorial
Grüße Uwe
Dein Regex dazu kann so aussehen
(?<fileNameWithoutExtension>.*)\.(?<ext>[^\.]+$)
Match the regular expression below and capture its match into backreference with name “fileNameWithoutExtension” «(?<fileNameWithoutExtension>.*)»
Match any single character that is not a line break character «.*»
Between zero and unlimited times, as many times as possible, giving back as needed (greedy) «*»
Match the character “.” literally «\.»
Match the regular expression below and capture its match into backreference with name “ext” «(?<ext>[^\.]+$)»
Match any character that is NOT a . character «[^\.]+»
Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
Assert position at the end of the string (or before the line break at the end of the string, if any) «$
Grüße Uwe