REGEXP: URL anklickbar machen

REGEXP: URL anklickbar machen

am 18.06.2006 20:05:41 von Ralf Gmeiner

Hallo,

ich benutze zum anklickbar machen von URLs in einem String folgende REGEXP:

$search =
'#(^|[^\"=]{1})(https?://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sme';

Leider wird bei folgendem Beispiel das Satzzeichen am Ende nicht
ausgeklammert:
"Weitere Infos unter http://www.asdf.de."

Kann mir jemand helfen? :)

Viele Grüße
Ralf

Re: REGEXP: URL anklickbar machen

am 19.06.2006 16:08:40 von Johannes Vogel

Hi Ralf

Ralf Gmeiner wrote:
> ich benutze zum anklickbar machen von URLs in einem String folgende REGEXP:
> $search =
> '#(^|[^\"=]{1})(https?://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sme';
> Leider wird bei folgendem Beispiel das Satzzeichen am Ende nicht
> ausgeklammert:
> "Weitere Infos unter http://www.asdf.de."
> Kann mir jemand helfen? :)

Weshalb sollte es? Du hast ja nicht im RegExp drin, dass der Link vorher
zu Ende sei. Dazu müsstest du einfach die Satzzeichen in die Liste der
Endzeichen reinnehmen. Aber wohl nur dann, wenn er das letzte Zeichen
des bisher vermeintlichen Link ist - schliesslich gibt's auch Punkte in
der URI drin. Vielleicht hilft bereits das:

#(^|[^\"=]{1})(https?://|ftp://|mailto:|news:)([^\s<>]+)[.!-?]?([\s\n<>]|$)#sme


HTH, Johannes

Re: REGEXP: URL anklickbar machen

am 22.06.2006 15:01:16 von Ralf Gmeiner

Hallo Johannes,

"Johannes Vogel" schrieb...

> Weshalb sollte es? Du hast ja nicht im RegExp drin, dass der Link vorher
> zu Ende sei. Dazu müsstest du einfach die Satzzeichen in die Liste der
> Endzeichen reinnehmen. Aber wohl nur dann, wenn er das letzte Zeichen
> des bisher vermeintlichen Link ist - schliesslich gibt's auch Punkte in
> der URI drin. Vielleicht hilft bereits das:
>
> #(^|[^\"=]{1})(https?://|ftp://|mailto:|news:)([^\s<>]+)[.!-?]?([\s\n<>]|$)#sme

entschuldige bitte die späte Antwort. Leider klappt das nicht. :( Hängt das
irgendwie mit dem "\s" zusammen?

Viele Grüße
Ralf