Найти гиперссылки в тексте с помощью Python (связанный с Twitter)
Как я могу разобрать текст и найти все экземпляры гиперссылок со строкой? Гиперссылка не будет находиться в формате html <a href="#" onclick="location.href='http://test.com'; return false;">test</a>
, а просто http://test.com
Во-вторых, я хотел бы затем преобразовать исходную строку и заменить все экземпляры гиперссылок на интерактивные гиперссылки html.
Я нашел пример в этом потоке:
Самый простой способ преобразования URL-адреса в гиперссылку в строке С#?
но не удалось воспроизвести его в python: (
Ответы
Ответ 1
Здесь находится порт Python Самый простой способ преобразования URL-адреса в гиперссылку в строке С#?:
import re
myString = "This is my tweet check it out http://tinyurl.com/blah"
r = re.compile(r"(http://[^ ]+)")
print r.sub(r'<a href="\1">\1</a>', myString)
Вывод:
This is my tweet check it out <a href="http://tinyurl.com/blah">http://tinyurl.com/blah</a>
Ответ 2
Здесь является гораздо более сложным регулярным выражением с 2002 года.
Ответ 3
Django также имеет решение, которое не просто использует регулярное выражение. Это django.utils.html.urlize(). Я нашел, что это очень полезно, особенно если вы используете django.
Вы также можете извлечь код для использования в своем собственном проекте.
Ответ 4
Jinja2 (Flask использует это) имеет фильтр urlize
, который делает то же самое.
Docs