Cheatah: reg. Expr funktioniert nicht ganz richtig.

Beitrag lesen

Hi,

(https?://|\s+www)
Dir ist klar, dass die Zeichenkette "www" nicht die geringste Bedeutung hat? Ja, ich weiß, warum Du das so gemacht hast; aber das ist IMHO suboptimal. Übrigens gibt es auch FTP-URLs.
Ja, aber viele Leute tippen www.irgendwas.com ein. Es wär ein Blödsinn, wenn ich nur nach Buchstaben oder dgl. prüfe.

die gleichen Leute tippen aber auch irgendwas.com ein, wenn sie zu faul sind.

[A-Za-z0-9._-%&?/+=;]
Dies matcht auch auf ziemlich viel falsches... etwa auf "/%T/" und "abc???".
Ja, aber wie kann man unterscheiden, was richtig oder falsch ist ?

Beispielsweise könntest Du auf "([a-z...]|%[0-9a-f][0-9a-f])+" testen. Damit sind es dann entweder erlaubte Zeichen oder korrekte Kodierungen. Das Fragezeichen-Problem musst Du lösen, indem Du den Searchpart separierst - es ist maximal ein Fragezeichen erlaubt.

Übrigens hat /%T/ eine bestimmte Funktion ?

Nope, nur das "%".

/<
Dies ist, besonders beim Ersetzungsstring, kein Sonderzeichen, dass man maskieren müsste.
Hab ichs mir doch gedacht. Ich sehe es nur oft so, deswegen dachte ich, da sei was dran. Habe es heute zum ersten Mal gemacht, werds mir gleich wieder abgewöhnen =)

Gute Wahl ;-)

Regular Expressions in Perl sind auch z.B. in der Schreibweise s!a!b! möglich, was bei Maskierungen von "/" durchaus einen Lesbarkeitsvorteil darstellt.
ja ich weis, aber ehrlich gesagt hab ich mich an die / so gewöhnt, dass mich das nicht stört.

Andere aber schon, die das dann lesen müssen oder wollen. Insbesondere deshalb, weil mehrere Slashes vorkommen.

Cheatah