Skip to content Skip to sidebar Skip to footer

Replace Url With A Link Using Regex In Python

how do I convert some text to a link? Back in PHP, I used this piece of code that worked well for my purpose: $text = preg_replace('#(^|[\n ])(([\w]+?://[\w\#$%&~.\

Solution 1:

The code below is a simple translation to python. You should confirm that it actually does what you want. For more information, please see the Python Regular Expression HOWTO.

import re

pat1 = re.compile(r"(^|[\n ])(([\w]+?://[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)", re.IGNORECASE | re.DOTALL)

pat2 = re.compile(r"#(^|[\n ])(((www|ftp)\.[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)", re.IGNORECASE | re.DOTALL)


urlstr = 'http://www.example.com/foo/bar.html'

urlstr = pat1.sub(r'\1<a href="\2" target="_blank">\3</a>', urlstr)
urlstr = pat2.sub(r'\1<a href="http:/\2" target="_blank">\3</a>', urlstr)

print urlstr

Here's what the output looks like at my end:

<a href="http://www.example.com/foo/bar.html" target="_blank">http://www.example.com</a>

Post a Comment for "Replace Url With A Link Using Regex In Python"