正则表达式如下
( https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]
复现代码:
import re
url_pattern = re.compile(r'( https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]')
print("search", url_pattern.search("http://1.com 和 http://2.com"))
print("findall", url_pattern.findall("http://1.com 和 http://2.com"))
为什么二者表现不同呢?如果我想用 url_pattern.findall()
得到 ["http://1.com","http://2.com"]
这样的结果,该如何修改代码?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.