Разделить от определенного разделителя - PullRequest
2 голосов
/ 19 января 2011

Как скопировать URL-адрес типа http://www.facebook.com/pages/create.php, чтобы получить такой результат: www.facebook.com?

Я пробовал таким образом, но не работает:

line.split('/', 2)[2]

Моя проблема, вероятно, связана с тем, что две косые черты // и некоторые URL начинаются со строк www.

Спасибо за помощь, Adia

Ответы [ 4 ]

8 голосов
/ 19 января 2011

Возможно, вы захотите взглянуть на модуль Python urlparse .

>>> from urlparse import urlparse
>>> o = urlparse('http://www.facebook.com/pages/create.php')
>>> o.netloc
'www.facebook.com'
1 голос
/ 19 января 2011

Попробуйте:

line.split("//", 1)[-1].split("/", 1)[0]
1 голос
/ 19 января 2011

Вероятно, лучшим вариантом было бы вернуть серверную часть из регулярного выражения, то есть

\/[a-z0-9\-\.]*[a-zA-Z0-9\-]+\.[a-z]{2,3}\/

Это может охватывать www.facebook.com, facebook.com, some-domain.tv, www.some-domain.net и т. Д.

ПРИМЕЧАНИЕ: начальная и конечная косая черта являются частью регулярного выражения, а не разделителями регулярных выражений.

0 голосов
/ 19 января 2011

Я бы сделал:

ch[7 if ch[0:7]=='http://' else 0:].partition('/')[0]

Я не уверен, что это справедливо для всех случаев, с которыми вы столкнетесь

Также:

ch[(ch[0:7]=='http://')*7:].partition('/')[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...