2011-09-15 5 views
2

url의 세 번째 인스턴스와 일치하는 정규 표현식을 만들려고합니다. 즉, 웹 사이트 이름 자체 만 기록되도록하는 것입니다.세 번째 인스턴스와 일치하는 정규식? (파이썬)

자신을 내가 그들에 대해 놀았 던 http://www.stackoverflow.com

수와 함께 올 것이다 정규식을 넣어 된 후에 그래서

http://www.stackoverflow.com/questions/answers/help/ :

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

하지만이 모든 수행은 HTTP에 대한 링크를 줄일 수있다 : - 그래서 제 3의 인스턴스와 일치해야합니다. - 아무도 내가 이것을 어떻게 설명 할 수 있습니까?

감사합니다.

답변

9

난 당신이 구문 분석 URL에 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을 사용하십시오.

+0

는 훨씬 쉽게 삶을 수 있습니다! 덕분에 많이 =) – Jingo

3
URLParse 일하는 것이

,하지만 당신은 원래 정규 표현식에 대해 질문 있기 때문에, 대신에 부정적인 교체의 긍정적 인 경기를 시도해보십시오

match = re.match(r'.+://[^/]+', url); 
baseUrl = match.group(); 

이이 후 http:// (또는 https://, 또는 ftp://), 모든 것을 잡아 것 처음까지 /.

나는이 몰랐던 아

http://www.tutorialspoint.com/python/python_reg_expressions.htm

+1

완벽하게 작동 -하지만 난 urlparse 함께 갈 것 - 감사합니다 많이 =) – Jingo