Hilfe bei RegEx-Ausdruck um Dateien zu identifzieren

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Takafusa.

    Hilfe bei RegEx-Ausdruck um Dateien zu identifzieren

    Moin!

    ich brauche einmal wieder Unterstützung bei der Erkennung von Dateinamen mittes RegEx.

    Folgende Dateinamen sind zu erkennen:

    auftragsposition_14_20_1090_01_172900404_4050_14.pdf

    auftragsposition ... konstant
    dann ein "_"
    dann eine kombi aus Ziffern und "_"
    endet auf "_"
    9 Ziffern
    "_"
    Ziffern
    "_"
    Ziffern
    Endung auf ".pdf"

    Kann mir einer der Cracks weiterhelfen?

    Gruß Jan
    Hast du dir mal dieses Tutorial angesehen?
    RegEx Tutorial - Blutige Anfänger und Fortgeschrittene

    C#-Quellcode

    1. bool IsFilenameLegal(string filename)
    2. {
    3. Regex r = new Regex(@"auftragsposition_\d+_\d+_\d+_\d+_\d{9}_\d+_\d+.pdf");
    4. Match m = r.Match(filename);
    5. return m.Success;
    6. }
    Hi !

    erst einmal vielen Dank - ich habe immer wieder Anläufe zu dem Thema genommen, aber irgendwie will das nicht in meinen Kopf.

    Gruß Jan

    Nachtrag: kann man irgendwie die 9-stellige Ziffer ganz einfach extrahieren?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jan99“ ()

    Ja, da war ich wieder voreilig, so könnte es besser sein. So matched das auch wenn die Anzahl der Zahlen und _ variiert, musst du aber schauen wie genau der Match sein soll.

    C#-Quellcode

    1. Regex r = new Regex(@"auftragsposition(_\d+)+_\d{9}(_\d+)+.pdf");


    jan99 schrieb:

    Nachtrag: kann man irgendwie die 9-stellige Ziffer ganz einfach extrahieren?


    C#-Quellcode

    1. string GetTheNumber(string filename)
    2. {
    3. Regex r = new Regex(@"(?<=auftragsposition(_\d+)+_)(\d{9})(?=(_\d+)+.pdf)");
    4. Match m = r.Match(filename);
    5. return m.Success ? m.Value.ToString() : "An error occurred";
    6. }


    Wenn der Aufbau der Dateinamen so immer gleich ist, sollte es gut sein. Wenn aber wie der ErfinderDesRades gefragt hat noch andere Varianten vorkommen können, muss man sicher noch mal nachbessern.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Takafusa“ ()