Sko.
((http://)(\S)*) sé ég ekki alveg fyrir mér ganga.
Svigar eru notaðir í það sem þú þarft, bara á annan hátt. Þeir eru notaðir fyrir svokallaða backreferences, til að afmarka það sem vitna á í. Tilvísanir eru gerðar með \1 \2 osfr. (\1 vísar í það sem er í fyrsta sviga og \2 í annan sviga osfr.)
Annað er að \S er ekki besta lausnin, url eru oft svo flókin og það getur reynst snúið að matcha þau.
Ég er með tvær lausnir, sú fyrri ætti að vera nothæf fyrir jakarta þótt eregi_replace kunni að vera eitthvað annað.
$texti = eregi_replace(
"(http|https|ftp)://([[:alnum:]/+-=%&:_.~?]+[#[:alnum:]+]*)“,
”<a href=\“\\1://\\2\”>\\1://\\2</a>“,
$texti);
Hin lausnin er að gera þetta í Perl sem ég er viss um að gangi með þessu urlify scripti úr Perl Cookbook frá O\'Reilly. Alveg pottþétt lausn!
#!/usr/bin/perl
# urlify – tchrist@perl.com
$urls = ‘(http|telnet|gopher|file|wais|ftp)’;
$ltrs = ‘\w’;
$gunk = ‘/#~:.?+=&%@!\-’;
$punc = ‘.:?\-’;
$any = ”${ltrs}${gunk}${punc}";
while (<>) {
s{\b(${urls}:[$any]+?)(?=[$punc]*[^$any]|\Z)}{<A HEF=“$1”>$1</A>}goi;
print;
}
(þarna er $1, $2 osfr. notað til að vitna í svigana í stað \1, \2 osfr.)
Er ég grillaður (El Grillo)? rúmenskan var bara smá grín
Vonandi gangast þetta
lifi Rúmenía