Regulärer Ausdruck zur Erkennnung von Dateien
Matthias Jütte
- programmiertechnik
Hallo!
Habe soeben meinen allerersten (scheinbar funktionierenden) regulären Ausdruck zustande gebracht. Das Ganze vor dem Hintergrund, daß ich beim Einlesen eines Verzeichnisses für Dateien besondere Funktionen zur Verfügung stellen möchte. Das Ding schaut so aus:
[a-zA-Z0-9-+?()._&][.]{1}[a-zA-Z0-9]{3}$
Meine Fragen an diejenigen, die etwas mehr Erfahrung mit den Dingern haben:
Gruß
Matthias
Hi,
Habe soeben meinen allerersten (scheinbar funktionierenden) regulären Ausdruck zustande gebracht.
"scheinbar" oder "anscheinend"? :-)
- ist der so tasächlich korrekt,
Das lässt sich so nicht beantworten. Welche Ansprüche erhebt der Ausdruck?
- sehe ich das richtig, das diese Syntax nur mit ereg funktioniert und für preg die Perl (-kompatible?) Syntax verwendet wird?
Ich sehe nichts, was nicht perlkompatibel wäre.
Cheatah
Hallo!
"scheinbar" oder "anscheinend"? :-)
Ich sach ma anscheinend...
Das lässt sich so nicht beantworten. Welche Ansprüche erhebt der Ausdruck?
Siehe Antwort zu MudGuards Beitrag
Ich sehe nichts, was nicht perlkompatibel wäre.
Gibt es überhaupt unterschiedliche Syntax für reguläre Ausdrücke?
Gruß
Matthias
Hi,
[a-zA-Z0-9-+?()._&][.]{1}[a-zA-Z0-9]{3}$
[.]{1}
kann man einfacher als . schreiben.
Dein Regex läßt keine Dateinamen ohne . zu.
Dein Regex verlangt nach dem Punkt genau 3 Zeichen.
Du setzt also eine 3-buchstabige Extension voraus.
Perlscripte werden unter Windows üblicherweise mit pl als Extension verwendet,
HTML-Dateien haben oft html - oder bei Verwendung von SSI sogar shtml als Extension).
Zu DOS-Zeiten war das Limit der Extension noch 3 Zeichen (kürzer war auch da schon erlaubt).
Bei Windows/Unix ist eine Extension nicht erforderlich, und wenn vorhanden nicht auf 3 Zeichen begrenzt.
Vor dem letzten Punkt muß mindestens ein Zeichen stehen (.htaccess)
- ist der so tasächlich korrekt, oder kann (sollte) man noch was ändern
Syntaktisch korrekt ist der Regex auf den ersten Blick.
- geht mir damit u.U. was durch die Lappen?
Alle Dateinamen, die kein Zeichen vor dem letzten Punkt haben (.htaccess ...)
Alle Dateinamen, die keinen Punkt enthalten
Alle Dateinamen, die nach dem letzten Punkt nicht genau 3 Buchstaben oder Ziffern haben.
Alle Dateinamen, die Umlaute enthalten (sollte man aber IMHO sowieso vermeiden).
Alle Dateinamen, die Leerzeichen enthalten (sollte man aber IMHO sowieso vermeiden).
Vielleicht noch ein paar mehr...
cu,
Andreas
Hallo!
Hatte vergessen zu erwähnen, das ausschließlich unter Windows erstellte Office-Dokumente (PDF, PPT, DOC, XLS) in Frage kommen, ggf. ZIP-Dateien. Somit sollte ich wohl auf der sicheren Seite sein.
Danke auf jeden Fall für's drüber schauen.
Gruß
Matthias
Hi Andreas,
Alle Dateinamen, die Umlaute enthalten (sollte man aber IMHO sowieso vermeiden).
Alle Dateinamen, die Leerzeichen enthalten (sollte man aber IMHO sowieso vermeiden).
warum sollte man das vermeiden?
Schöne Grüße
Julian
Hi,
Alle Dateinamen, die Umlaute enthalten (sollte man aber IMHO sowieso vermeiden).
Alle Dateinamen, die Leerzeichen enthalten (sollte man aber IMHO sowieso vermeiden).
warum sollte man das vermeiden?
Weil es früher oder später zu Ärger führt.
Leerzeichen ist z.B. in Shells üblicherweise der Trenner zwischen Argumenten.
Leerzeichen und Umlaute in Dateinamen, die in URLs auftauchen, müssen codiert werden ...
usw.
cu,
Andreas
Hi,
Leerzeichen ist z.B. in Shells üblicherweise der Trenner zwischen Argumenten.
Leerzeichen und Umlaute in Dateinamen, die in URLs auftauchen, müssen codiert werden ...
usw.
in der Shell setze ich den Namen dann in '"' oder maskiere mit '' das Leerzeichen. Die meisten Browser kodieren Umlaute automatisch (ich weiß dass die URL nicht korrekt wäre mit Umlauten). Hast du Argumente die einen Laien überzeugen würden?
Schöne Grüße
Julian
hi Julian!
umlaute (und ß) haben z.b. den nachteil, dass sie mit hilfe des us-keyboard-layouts, welches das meistverbreitetste (ist das so richtig geschrieben? oder muss es "am meisten verbreitete" heissen?) ist, nur schwer dargestellt werden koennen.
ferner kann es passieren, dass umlaute ploetzlich gar keine mehr sind, sondern durch andere sonderzeichen ersetzt werden, vermoege unterschiedlicher zeichensaetze.
prost
seth
Hi,
welches das meistverbreitetste (ist das so richtig geschrieben? oder muss es "am meisten verbreitete" heissen?)
weitestverbreitete
Bei zusammengesetzten Adjektiven, die beide gesteigert werden können, wird nur das erste gesteigert.
cu,
Andreas
Hi seth,
umlaute (und ß) haben z.b. den nachteil, dass sie mit hilfe des us-keyboard-layouts, welches das meistverbreitetste (ist das so richtig geschrieben? oder muss es "am meisten verbreitete" heissen?) ist, nur schwer dargestellt werden koennen.
ferner kann es passieren, dass umlaute ploetzlich gar keine mehr sind, sondern durch andere sonderzeichen ersetzt werden, vermoege unterschiedlicher zeichensaetze.
Was glaubst du, warum es die Wildcard »?« gibt? ;-)
Schöne Grüße,
Johannes