与第三个实例匹配的正则表达式? (蟒蛇)

时间:2011-09-15 14:52:58

标签: python regex

我正在尝试创建一个与url中的/的第三个实例匹配的正则表达式,即只记录网站的名称本身,而不是其他内容。

通过正则表达式后,http://www.stackoverflow.com/questions/answers/help/ http://www.stackoverflow.com

我自己一直和他们一起玩,然后想出来:

base_url = re.sub(r'[/].*', r'', url)

但所有这一切都是减少到http的链接: - 所以很明显我需要匹配/的第三个实例 - 任何人都可以解释我会怎么做?

谢谢!

2 个答案:

答案 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