Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Answer: How do I replace a URL with a clickable hyperlink?

by tipthepizzaguy (Initiate)
on Feb 15, 2002 at 08:32 UTC ( #145643=categorized answer: print w/replies, xml ) Need Help??

Q&A > regular expressions > How do I replace a URL with a clickable hyperlink? - Answer contributed by tipthepizzaguy

Thank you. I found a slightly shorter way based on tachyon's response. (Will open link in new window.)

$text = "Come visit and see what it says."; $text =~ s!(http://[^\s]+)!<a href="$1" target="_new">$1</a>!gi; print $text;

Replies are listed 'Best First'.
Re: Answer: How do I replace a URL with a clickable hyperlink?
by htmanning (Monk) on Apr 06, 2005 at 00:45 UTC
    This code looks great but could someone tell me how to use this code if I don't have the http:// in the text? I have a string of text where it will simply say I want to turn that into Thanks. Tom

      "" is not a URL -- it's a domain.

      Assuming you had first matched the domain (and had it in a variable named $domain) and you knew that all of the domains were using a host named 'www' for protocol 'http', you could use:

      my $link = "<a href='http://www.$domain'>$domain</a>";

      How you match domains is up to you... but I know that I get annoyed when my jabber client thinks that my discussions about perl scripts should be turned into links to websites in Poland.

        Well, here's what I ended up using: $text =~ s!(^\s+\.com)!$1!gi; This works but the only problem is that sometimes I'm grabbing out of a block of text, that also includes an image. In that case, the image code is messed up because the above code looks for white space, then something, then .com, which also matches the html for the image. How can I have the image left along, and the above code applied to Thanks.
Log In?

What's my password?
Create A New User
[Discipulus]: 'unless it rains' => 'a meno che NON piova'
erix is always in favour of code-revolutions
[Lady_Aleena]: Well, right now, I"m looking at modules where I put randomness that aren't in my RolePlaying/Random dir, like RolePlaying:: Character:: Alignment that is mostly about random_alignment than expand_alignment.

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2017-05-27 20:32 GMT
Find Nodes?
    Voting Booth?