Python/Django:autoURL查找器+Tex中的荧光笔

2024-04-29 03:40:46 发布

您现在位置:Python中文网/ 问答频道 /正文

  • 我用Python、Django、Bootstrap和googleappengine创建了我的第一个web应用程序
  • 我的要求是当人们建议外部链接时,程序应该能够在文本中找到并突出显示为可点击的URL。在
  • 例如,当我们在stackoverflow中给出http://www.google.com时,它将其转换为超链接
  • 我不知道如何做到这一点,任何帮助都将不胜感激

Tags: django文本程序comweb应用程序httpurl
3条回答

查看pythonre模块。在

例如,取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)

不幸的是,这将捕获不需要转换的实际链接,但现在您的问题是找到正确的regex(如果您查找的话,我肯定已经在网上记录过了)。python和django部分已经完成。在

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

我不知道是否有一个规范的正则表达式用于此目的,但是一些似乎工作得很好的是here和in this answer。在

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

相关问题 更多 >