Hi,
Müsste aber nicht auch /.+.html/ diese Datei auflisten ?
nein, denn mit .+ sagst du "mindestens ein beliebiges zeichen vor .html"
heisst die datei nun ".html" steht _kein_ zeichen davor, damit ist o.g. muster nicht erfüllt
Der Ausdruck .html kommt ja schliesslich 1x vor. Oder wird
die Datei gefunden, weil der Ausdruck in /.*.html/ genau Null
mal vorkommt (ignoriert Perl versteckte Dateien?).
langsam verstehe ich, daß da ein grundlegendes verständnissproblem vorliegt..
ein + oder ein * bezieht sich nur auf das genau davor stehende zeichen
(oder die davor stehende, in klammern gesetzte grupierung, aber das ist für dein beispiel irrelevant)
und nicht auf das ganze oder nachfolgende muster.
das Zeichen "." hat nun die besondere bedeutung "beliebiges Zeichen" (naja fast, aber die besonderheit ist momentan irrelevant, ggf. nachlesen) also entspricht ".*" ungefähr dem "*" unter z.B. DOS.
Der zweite
Ausdruck müsste doch auch Dateien wie z.b: "html.xxxx" finden -
oder liege ich da falsch ?
nein (müsste er nicht finden), da .* somit (s.o.) besagt "eine beliebige Anzahl beliebiger Zeichen (einschließlich kein Zeichen) _vor_ ".html".
Über die Zeichen dahinter triffst du zwar keine Aussage, aber es fehlt der in deinem Muster durch . verlangte "." vor "html.xxxx". Er würde allerdings ".html.xxxx" finden.
(durch den "" in "." sagst du, daß du tatsächlich den "." als Zeichen meinst und nicht in seiner Bedeutung als Platzhalter für ein "beliebiges Zeichen".)
Grüße,
Marcus