$xNeTworKx: reg. Expr funktioniert nicht ganz richtig.

Beitrag lesen

Hi,

$changetext =~ s/([^[link]]

dieses matcht auf z.B. "rzG4?", nicht jedoch auf "in][kl". Bedenke bitte, was eine Zeichenklasse ist.

habe zuerst nicht verstanden was du meinst, aber durch Björns Posting ist es mir jetzt klar.

(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.

[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 ?
Übrigens hat /%T/ eine bestimmte Funktion ?

[^[/link]])

Selbiges wie oben.

=(

/<

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 =)

[...]/

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.

span>/ig

Falsch. span>/nend ;-) Übrigens brauchst Du, wenn Du durch "i" die case-sensitivity deaktivierst, in Zeichenklassen nicht explizit Groß- _und_ Kleinbuchstaben anzugeben.

Ok, wieder was dazugelernt =)

$xNeTworKx.