我正在努力编写一个应该捕获任何http地址的正则表达式。 (背景:我想在tkinter窗口中使用它,一个简单的编辑器,将http地址转换为可点击的链接) 由于它们有多复杂,哪个是更好的正则表达式?
的Alessandro
答案 0 :(得分:1)
答案 1 :(得分:1)
使用A regex that validates a web address and matches an empty string?作为答案的基础。
假设HTTP(或HTTPS)地址:
然后正则表达式可以是'(http | https):// [\ w-] +(。[\ w-] +)+ \ S *'
>>> import re
>>> re.sub("(http|https)://[\w\-]+(\.[\w\-]+)+\S*", "### URL ###", "There is an URL in this string : https://stackoverflow.com/questions/6532089/regex-to-catch-any-http-address and it is followed by text")
'There is an URL in this string : ### URL ### and it is followed by text'
但它没有检测到URL后的标点符号。
答案 2 :(得分:1)
在tornado.escape模块中,这是一个很好的方法“linkify”。 您可以在此处查看来源:escape.py ps:我想把这篇文章添加为评论,但我没有足够的权限,但无论如何我希望你发现它有用。