Reguläre Ausdrücke

Steusi

Nasenbär
Moin,

ich stoße immer wieder auf das Problem mit preg_match(). Leider finde ich im Netz keine gute Anleitung, um zu wissen welche Zeichen was bedeuten.
Also ich brauch momentan 2 Reguläre Ausdrücke,

Das 1. Problem sind .csv Dateien nach folgendem Muster:

B123456.csv
B654321.csv

Es muss mit B beginnen, dann 6 Zahlen und dann .csv
Ich habe es folgendermaßen gelöst:
PHP:
preg_match('/^B([0-9]{6})/',$file)
Soweit konnte ich es mir erschließen, es funktioniert auch, leider weiß ich nicht wie ich die .csv beschreibe. :-(

Das 2. Problem sind .pdf Dateien nach folgendem Muster:

KA13333333_2010.04.08.pdf
W22200033656_2010.04.12.pdf

Anfang 1 Buchstabe
n beliebige Zeichen
Unterstrich
4 Zahlen
Punkt
2 Zahlen
Punkt
2 Zahlen
.pdf

Ich habe leide keine Ahnung, deshalb wollte ich mich auf .pdf beschränken (was mir auch genügen würde).
PHP:
preg_match('/.pdf$/',$file)
Leider klappt es nicht, hoffe jemand kann es mir erklären oder mir eine gute Quelle nennen.

Danke
 
Wunderbar, danke :-)

Das müsste mein 2. Problem folgendermaßen gelöst werden:
PHP:
preg_match('/^[K|W].+[_][0-9]{4}\.[0-9]{2}\.[0-9]{2}\.pdf$/',$file)

Endlich kann ich mich da mal durch kämpfen.
 
Jupp

Und ums mMn lesbarer zu machen kann man [0-9]{4} durch etwas lesbarers ersetzen
[[:digit:]]{4}
oder
[\d]{4}

Ich bevorzuge [[:digit:]]

Nachtrag:
den _ musst du nicht in [] setzen, da er ja eh nur einmal vorkommt
PHP:
$pattern = '/^[K|W].+_[[:digit:]]{4}\.[\d]{2}\.[0-9]{2}\.pdf$/';
 
Zurück