Python / Django:文本中的自动URL查找器+荧光笔

时间:2012-01-22 05:51:48

标签: javascript python django

  • 我使用Python,Django,Bootstrap和google-app-engine创建了我的第一个Web应用程序
  • 我的要求是当人们建议外部链接时,该程序应该能够在文本中找到并突出显示为可点击的URL。
  • 例如,当我们在stackoverflow中提供http://www.google.com时,它将其转换为超链接
  • 我不知道如何实现这一目标,非常感谢任何帮助

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

查看python re模块。

例如,取John Gruber's URL regex pattern并将其与his data set匹配,您可以执行以下操作...

giant_regex = r'''(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))'''
output_with_links = re.sub(giant_regex, r'<a href="\1">\1</a>', source_html)

不幸的是,这将捕获不需要转换的实际链接,但现在你的问题是找到正确的正则表达式(我相信如果你看,我肯定已在网上记录)。 python和django部分已经完成。

答案 2 :(得分:0)

这不是一个完整的答案,但会让你开始:在Django中做你想做的事,你需要(1)获取用户提交的输入文本,(2)解析它的url模式,以及(3)返回带有超链接的html以在视图中显示。

我不知道是否有针对此目的的规范正则表达式,但有些效果似乎正常的herethis answer

在SO中,正如您所注意到的,解析后的文本首先显示在单独的中  显示框,一旦你点击“提交”,就会重新渲染。您可以选择多种方式呈现文本(例如,使用Javascript解析客户端上的文本)。但是,对于第一阶段,您可能只需创建一个“结果”页面,每个网址都替换为该网址的超链接(<a href='url'>url</a>)。