【发布时间】:2019-11-23 14:34:41
【问题描述】:
我在 Python 中准备了一个搜索 github 网页的正则表达式:
github = re.findall(
"https?:\/\/(?:www\.)?github\.com\/[A-Za-z0-9_-]+\/?",
text)
但现在它会搜索以 https 开头的链接。如何修改它,因此正则表达式将搜索以 https 或仅以 www 开头的字符串?
现在我的正则表达式会找到这个:
https://github.com/helloman
还有这个:
https://www.github.com/helloman
但不是这个:
www.github.com/helloman
如何更改以接受所有三个选项?
【问题讨论】:
-
这个问题对我来说不是很清楚。你能发布一些示例网址吗?
-
已编辑,希望现在更好
-
我用所有树示例测试了你的正则表达式,它已经做了你想要的。看不出有什么问题。你能澄清一下吗?
-
我很确定它不适用于像
www.github.com/XXX这样的地址 -
因此,您想查找以
www.或https?://(?:www\.)?开头的URL。您可以使用 OR 语法来做到这一点:(thing)|(another thing)。或者使用this 收集所有URL,然后使用URL 解析器(我认为是urllib提供的)来检查域