Dateinamen und RegExp

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Dateinamen und RegExp

    So hoi Leude,

    ich habe mich zum Lösen einer Aufgabe die letzte Zeit mit RegExp sowie
    Stringvergleich usw. beschäftigt habe aber leider noch keinen Ansatz für die Problemlösung gefunden.

    Es geht um folgendes.
    Es soll ein System erstellt werden, das Dateinamen, die immer in einem definierten Format vorliegen auswertet.

    Ein Beispielformat:
    abc_bbn21_L1233245_irgs.xls
    xyz_bbn23_L123345_irgendws.xls
    xabcde_bbn22_L8945_irgend.xls

    Wie Ihr seht die einzelnen Elemente sind lediglich durch Unterstriche getrennt. Wie kann ich nun durch einen regulären Ausdruck immer den zweiten Ausdruck herausfinden? Bzw. der Ausdruck der nach dem zweiten Unterstrich folgt?! Ich will quasi bbn21, bbn22 und bbn23 rausbekommen ...?!

    Zu erwähnen gilt noch das ich auch die dritten Ausdrücke rausfiltern muß also zu sagen naja nach dem ersten Unterstrick 5 Zeichen funktioniert beim dritten Ausdruck nicht mehr.

    Danke erst mal für Hilfe

    Grüße
    Prae

  • #2
    mit explode vielleicht?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      $dateiname = "abc_bbn21_L1233245_irgs.xls";
      $dateiname_array = explode ("_", $dateiname);
      $zweiter_teil=dateiname_array[1];
      $dritter_teil=dateiname_array[2];
      EDIT:
      so isses jetzt richtig mrhappiness!
      kleiner übersehener Fehler

      Zuletzt geändert von XGremliN; 20.10.2003, 09:56.
      it's not a bug,
      it's a feature!

      Kommentar


      • #4
        Original geschrieben von XGremliN
        $dateiname = "abc_bbn21_L1233245_irgs.xls";
        $dateiname_array = explode (" ", $dateiname);
        $zweiter_teil=dateiname_array[1];
        $dritter_teil=dateiname_array[2];


        " " != "_"
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          jupp das ne gude idee .... werdsch ma desden

          Kommentar


          • #6
            So liebe Leute das schonmal wunderprächtig gefunzt.

            Jetzt mal ein anderes Problem was aber mit dem selben Thema zu tun hat.
            Ich muß nun das Format auf Richtigkeit überprüfen (die Nomenklatur der oben genannten Beispiele hat sich vorhin geändert nur mal nebenbei).

            Ich brauche hilfe in folgendem Regexp:

            Ich möchte wissen wie ich Ausdrücke beliebig oft zulassen kann.

            Die Nomeklatur sieht wie folgt aus.

            Der Standart ist bspw.:
            94b_123456_435_12.02.2003.xls

            Der passende (wahrscheinlich überaus umständliche RegExp den ich geschrieben habe ist:
            ^[a-zA-Z0-9]*_[a-zA-Z0-9]*_[a-zA-Z0-9]*_[a-zA-Z0-9]{1,2}.[a-zA-Z0-9]{1,2}.[a-zA-Z0-9]{2,4}.xls$

            Jedoch kann je nach Inhalt der Datei die Ausdrücke zwischen Unterschrichen variieren bspw.:
            94b_123456[COLOR=red]_A3476[/COLOR]_435_12.02.2003.xls

            Ich suche daher einen Ausdruck der beliebig oft soetwas zulässt _[a-zA-Z0-9]* und dann eben erst _[a-zA-Z0-9]{1,2}.[a-zA-Z0-9]{1,2}.[a-zA-Z0-9]{2,4}.xls$

            Mein Versuch mit diesem Ausdruck ist leider fehlgeschlagen er akzeptierte hier das Muster immer:
            ^[a-zA-Z0-9]*[COLOR=red](_[a-zA-Z0-9]*)*[/COLOR]_[a-zA-Z0-9]{1,2}.[a-zA-Z0-9]{1,2}.[a-zA-Z0-9]{2,4}.xls$

            Aber ich weiß viele von euch können bei Bedarf regelrecht in RegExp denken und ich bedanke mich schon vorab für die Hilfe ...

            dangö
            Gruß Prae

            Kommentar

            Lädt...
            X