[PHP] Regex um Dateinamen zu zerlegen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Blackb!rd, 10. Januar 2011 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 10. Januar 2011
    Regex um Dateinamen zu zerlegen

    Hey Leute,

    ich versuche mich gerade mit Regex etwas einzuarbeiten. Allerdings ist mein Ziel für den Anfang mit Regex sehr schwer, daher suche ich mal bei euch um Hilfe. Folgendes Format hat der Dateiname:

    Code:
    Stirb_langsam_10.12.24_22-00_sat1_135_TVOON_DE.mpg.HQ.avi
    Ich würde gerne daraus gerne alle Parameter herausfiltern:
    • Name des Films
    • Format
    • HQ / HD / - ( Hier findet sich die entsprechende Qualität, falls der Parameter fehlt ist es Standart )
    • Datei-Endung
    Kann mir jemand da mit dem Regex etwas auf die Sprünge helfen?

    Wenn möglich mit kurzer Erklärung, damit ich's auch blicke


    Danke


    Gruß Blackbird89
     
  2. 11. Januar 2011
    AW: Regex um Dateinamen zu zerlegen

    Ich schreib dir mal schnell einen Ansatz auf... ist ungetestet und bereit von dir zum laufen gebracht zu werden ;-) Aber so hast du schonmal einen Einstieg.

    Code:
    ^([a-zA-Z0-9_]+)\..*\.([a-z0-9]+)\.((HQ|HD)\.)?([a-zA-Z0-9]+)$
    
    Zur Erklärung:

    Code:
    ^[b]([a-zA-Z0-9_]+)[/b]\..*\.([a-z0-9]+)\.((HQ|HD)\.)?([a-zA-Z0-9]+)$
    
    Dieser Teil sucht am Anfang des Strings nach dem Filmnamen... darin dürfen Kleinbuchstaben, Großbuchstaben, Zahlen und der Unterstrich vorkommen. Wenn du was anderes haben willst musst du es anpassen.

    Code:
    ^([a-zA-Z0-9_]+)[b]\.[/b].*\.([a-z0-9]+)\.((HQ|HD)\.)?([a-zA-Z0-9]+)$
    
    Einfach ein Punkt

    Code:
    ^([a-zA-Z0-9_]+)\.[B].*[/B]\.([a-z0-9]+)\.((HQ|HD)\.)?([a-zA-Z0-9]+)$
    
    Beliebige Zeichen. Wird nicht weiter verwendet.

    Code:
    ^([a-zA-Z0-9_]+)\..*[B]\.([a-z0-9]+)\.[/B]((HQ|HD)\.)?([a-zA-Z0-9]+)$
    
    Ein Punkt, gefolgt vom Format ( zB mpg )... darf aus Kleinbuchstaben und Zahlen bestehen... gefolgt von einem weiteren Punkt

    Code:
    ^([a-zA-Z0-9_]+)\..*\.([a-z0-9]+)\.[B]((HQ|HD)\.)?[/B]([a-zA-Z0-9]+)$
    
    Die Angabe HQ/HD... nur diese beiden Möglichkeiten werden akzeptiert... das ? gibt an dass dieser abschnitt optional ist... inklusive dem punkt am ende... dieser muss allerdings auftreten wenn die angabe HQ oder HD gemacht wurde weshalb alles in einer gemeinsamen klammer steht.

    Code:
    ^([a-zA-Z0-9_]+)\..*\.([a-z0-9]+)\.((HQ|HD)\.)?[B]([a-zA-Z0-9]+)[/B]$
    
    Die Dateiendung.


    Kannst ja mal ein Feedback schreiben wenn alles läuft
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.