我想输入一个URL并提取域名,该域名是http://或https://之后的字符串,包含字符串,数字,点,下划线或破折号。
我编写了正则表达式并使用了python的re
模块,如下所示:
import re
m = re.search('https?://([A-Za-z_0-9.-]+).*', 'https://google.co.uk?link=something')
m.group(1)
print(m)
我的理解是,m.group(1)
将提取re.search中的between()部分。
我期望的输出是:google.co.uk
但是我得到了这个:
<_sre.SRE_Match object; span=(0, 35), match='https://google.co.uk?link=something'>
你能告诉我如何使用re
来实现我的要求吗?
4条答案
按热度按时间j91ykkif1#
你需要写
更好的是-之前有一个条件:
7eumitmz2#
Jan已经为此提供了解决方案。但需要注意的是,我们可以在不使用
re
的情况下实现相同的解决方案。它只需要!"#$%&\'()*+,-./:;<=>?@[\\]^_
{|}~用于验证目的。同样可以从
string`包中获得。这只是另一种不使用
re
解决相同问题的方法。yquaqz183#
有一个名为tldextract的库,在这种情况下非常可靠。
下面是它的工作方式
输出如下,
ekqde3dh4#
最简单的方法是使用urllib包
其输出为