剥离URL Python

2024-07-04 10:55:01 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,我如何使用regex删除http和/或www来获取http://www.domain.com/进入域名.com

假设x是任何类型的TLD或cTLD

输入示例

http://www.domain.x/

在网址:www.domain.x在

输出

域.x


Tags: comhttp示例类型domainwwwregex域名
3条回答

如果确实要使用正则表达式而不是urlparse()或拆分字符串:

>>> domain = 'http://www.example.com/'
>>> re.match(r'(?:\w*://)?(?:.*\.)?([a-zA-Z-1-9]*\.[a-zA-Z]{1,}).*', domain).groups()[0]
example.com

正则表达式可能有点简单,但是可以工作。它也不是取代,但我认为得到域名更容易。在

支持像'联合王国,可以执行以下操作:

^{pr2}$

('google','联合王国')

所以你得检查一下结果联合王国,并在这种情况下再次加入结果。正常域应该可以正常工作。当你有多个子域时,我不能让它工作。在

没有正则表达式或奇特模块的一行程序:

>>> domain = 'http://www.example.com/'
>>> '.'.join(domain.replace('http://','').split('/')[0].split('.')[-2:])

不要使用regex,使用urlparse获取netloc

>>> x = 'http://www.domain.com/'
>>> from urlparse import urlparse
>>> o = urlparse(x)
>>> o
ParseResult(scheme='http', netloc='www.domain.com', path='/', params='', query='', fragment='')
>>> 

然后呢

^{pr2}$

方法之一是:

    >>>import re
    >>>str1 = 'http://www.domain.x/'
    >>>p1 = re.compile('http://www.|/')
    >>>out = p1.sub('',str1)

相关问题 更多 >

    热门问题