我正在尝试创建一个与url中的/的第三个实例匹配的正则表达式,即只记录网站的名称本身,而不是其他内容。
通过正则表达式后,http://www.stackoverflow.com/questions/answers/help/ http://www.stackoverflow.com
我自己一直和他们一起玩,然后想出来:
base_url = re.sub(r'[/].*', r'', url)
但所有这一切都是减少到http的链接: - 所以很明显我需要匹配/的第三个实例 - 任何人都可以解释我会怎么做?
谢谢!
答案 0 :(得分:9)
我建议您使用urlparse
来解析网址:
In [1]: from urlparse import urlparse
In [2]: urlparse('http://www.stackoverflow.com/questions/answers/help/').netloc
Out[2]: 'www.stackoverflow.com'
.netloc
包含端口号(如果存在)(例如www.stackoverflow.com:80
);如果您不想要端口号,请改用.hostname
。
答案 1 :(得分:3)
URLParse可以使用,但由于您最初询问的是正则表达式,请尝试使用正匹配而不是否定替换:
match = re.match(r'.+://[^/]+', url);
baseUrl = match.group();
这将获取http://
(或https://
或ftp://
)及其后的所有内容,直到第一个/
。
http://www.tutorialspoint.com/python/python_reg_expressions.htm