Reemplace la URL con un enlace usando expresiones regulares en python

¿Cómo convierto un texto a un enlace? De vuelta en PHP, utilicé este código que funcionó bien para mi propósito:

$text = preg_replace("#(^|[\n ])(([\w]+?://[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)#is", "\\1\\3", $text); $text = preg_replace("#(^|[\n ])(((www|ftp)\.[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)#is", "\\1\\3", $text); 

Probé en Python, pero no pude hacerlo funcionar. Sería muy bueno si alguien pudiera traducir esto a Python 🙂

El siguiente código es una traducción simple a python. Debes confirmar que realmente hace lo que quieres. Para obtener más información, consulte el CÓMO de la expresión regular de Python .

 import re pat1 = re.compile(r"(^|[\n ])(([\w]+?://[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)", re.IGNORECASE | re.DOTALL) pathttps://stackoverflow.com/questions/1112012/replace-url-with-a-link-using-regex-in-python/2 = 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\3', urlstr) urlstr = pathttps://stackoverflow.com/questions/1112012/replace-url-with-a-link-using-regex-in-python/2.sub(r'\1\3', urlstr) print urlstr 

Así es como se ve la salida en mi final:

 http://www.example.com