python正则表达式网址

AJW*_*AJW 0 python regex python-2.7

我有一堆(丑陋的,如果我可以说)网址,我想用python正则表达式清理.所以,我的网址看起来像:

http://www.thisislink1.com/this/is/sublink1/1
http://www.thisislink2.co.uk/this/is/sublink1s/klinks
http://www.thisislinkd.co/this/is/sublink1/hotlinks/2
http://www.thisislinkf.com.uk/this/is/sublink1d/morelink
http://www.thisislink1.co.in/this/is/sublink1c/mylink
....
Run Code Online (Sandbox Code Playgroud)

我想要做的是清理这些网址,以便最终链接如下所示:

http://www.thisislink1.com
http://www.thisislink2.co.uk
http://www.thisislinkd.co
http://www.thisislinkf.de
http://www.thisislink1.us
....
Run Code Online (Sandbox Code Playgroud)

我想知道如何以pythonic方式实现这一目标.很抱歉,如果这是一个101问题 - 我是pytho正则表达式结构的新手.

unu*_*tbu 7

使用urlparse.urlsplit:

In [3]: import urlparse    

In [8]: url = urlparse.urlsplit('http://www.thisislink1.com/this/is/sublink1/1')

In [9]: url.netloc
Out[9]: 'www.thisislink1.com'
Run Code Online (Sandbox Code Playgroud)

在Python3中它会是

import urllib.parse as parse
url = parse.urlsplit('http://www.thisislink1.com/this/is/sublink1/1')
Run Code Online (Sandbox Code Playgroud)


Jon*_*nts 6

为什么要使用正则表达式?

>>> import urlparse
>>> url = 'http://www.thisislinkd.co/this/is/sublink1/hotlinks/2'
>>> urlparse.urlsplit(url)
SplitResult(scheme='http', netloc='www.thisislinkd.co', path='/this/is/sublink1/hotlinks/2', query='', fragment='')
Run Code Online (Sandbox Code Playgroud)