URL replacement in text

Steve Holden sholden at holdenweb.com
Fri Jan 12 12:42:28 EST 2001


"Fredrik Lundh" <fredrik at effbot.org> wrote in message
news:MrG76.5696$Qb7.794378 at newsb.telia.net...
> Ryan Tracey wrote:
> > Can anybody point me in the right direction on this one. I'd like to
> > pass a block of plain text (string) to a function and have that function
> > look for URLs and turn them into HTML URL tags
>
> import re
>
> links = re.compile("(?:http|ftp|gopher):[a-z0-9._~/%-]+")
>
> def fixlink(m):
>     href = m.group(0)
>     return "<a href='%s'>%s</a>" % (href, href)
>
> sometext = """
> here's a link: http://www.pythonware.com
> """
>
> print links.sub(fixlink, sometext)
>
> Hope this helps!
>
> Cheers /F
>
Tracey:

Note that this won't cope with some of the more pathological URLs (such as
those with CGI arguments [http://system/cgi?arg1=val1] or those which link
to a named anchor in the target page [http://system/pageref#target-name]).

Since it's about six times better that anything I could do, however, let
this act as a caution rather than a correction.

i-like-to-look-at-examples-too-but-avoid-re-when-I-can-ly y'rs  - steve





More information about the Python-list mailing list