2011-09-15 3 views
2

URLの3番目のインスタンスに一致する正規表現を作成しようとしています。つまり、ウェブサイトの名前自体だけが記録されるようにします。3番目のインスタンスに一致する正規表現ですか? (Python)

自分自身を、私は彼らと約プレーしてきた http://www.stackoverflow.com

こととして出てくる正規表現に通された後そう

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

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

しかし、このすべてが行うには、httpへのリンクを減らすことです: - それは明らかなので、私は/の3番目のインスタンスと一致する必要があります - 誰も私がこれを行う方法を説明することができますか?

ありがとうございます!

答えて

9

私はあなたがURLを解析するためurlparseを使用することをお勧め本(例えばwww.stackoverflow.com:80)場合

In [1]: from urlparse import urlparse 

In [2]: urlparse('http://www.stackoverflow.com/questions/answers/help/').netloc 
Out[2]: 'www.stackoverflow.com' 

.netlocは、ポート番号と、ポート番号を使用しない場合は、代わりに.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

関連する問題