Datum im Dateinamen ändern - Ordnung im Chaos

  • Hallo,

    viele Dateien hier sind hinsichtlich der Namenskonvention im Chaos versunken.

    Wie stellt man das am besten an, dass man zum einen die Muster findet (reguläre Suche?) und den neuen Dateinamen erstellt?

    Es gibt leider viele Schreibweisen, wie die Dateien benannt wurden. Jetzt soll Ordnung in das Chaos.

    Mit welcher Syntax würdet Ihr die Dateinamen so aufsplitten, dass man einen neuen Dateinamen aus Wort und Datum (Jahr-Monat bzw. Jahr-Monat-Tag) erstellen kann? Ich vermute, ich muss Muster mit der regulären Suche suchen, daran scheitere ich.

    Alle Dateien in ein Array einlesen und zeilenweise abarbeiten, das bekomme ich hin. Den Dateinamen zerlegen in Name und Erweiterung, auch das klappt. Und dann bin ich mit meinem Latein am Ende. Unten im Codeblock stehen einige der Dateinamen mit einem Datumsmuster, wie ich es auf der Festplatte vorgefunden habe.

    Vielleicht kennt sich hier jemand sehr gut mit der regulären Mustersuche aus bzw. es gibt ggf. noch eine alternative Möglichkeit?

    Danke und Glückwunsch zum neuen Forums-Design :)

  • Dazu braucht es keine komplexen Suchmuster, du kannst alle Formate im Regex einzeln finden und dann einfach mit einem Oder verketten (zwar nicht perfekt aber funktioniert).

    Allerdings hast du das Problem, dass du bei einigen Dateien nicht weißt ob es sich um den Monat oder das Jahr handelt also können dir einige Schnitzer passieren.

    So kriegst du die Gruppen: https://regex101.com/r/TtMs0O/1

    Danach kannst du ja schauen wie lang sie sind, wenn sie drei/vier Zeichen lang sind schaust du nach welche Zahl vorne steht und teilst sie nach gewissen Richtlinien auf.

    • Offizieller Beitrag

    Hier mal als Muster für die Dateinamen, die mit dem Datum beginnen (0516... / 2.17...)

    • Offizieller Beitrag

    Da sind zuviele Sonderfälle bei, um sie mit nur einem RegEx-Pattern erfassen zu können.

    Ich würde da auch in mehreren Schritten vorgehen: