2016-07-26 2 views
-1

Я новичок в Python и хотел бы знать, как получить выкройку регулярного выражения, чтобы соответствовать URL-адресRegex соответствие в Python 2.7

У меня есть следующий код в Java, и она работает. Мне нужно, чтобы иметь такие же один в питоне

Java:

URI uri = new URI("http://localhost:8080") 

    Matcher m = Pattern.compile("(.*)" + "/client" + "/([0-9]+)") 
    .matcher(uri.getPath()); 

Может кто-то наставит меня с имеющими эквивалентным регулярным выражением в Python

+0

@ TigerhawkT3 В основном два q uestions here: «Как мне получить путь от URL-адреса в Python?» и «Как использовать регулярные выражения в Python?» На первый из этих двух вопросов хорошо ответил вопрос, который вы сделали дубликатом. Второй вопрос может также быть дубликат, но вопрос, который вы связали, безусловно, не имеет отношения к делу. – smarx

+0

@smarx - [второй ответ на этот вопрос] (http://stackoverflow.com/a/835527/2617068) (проголосовали более высоко, чем принятый ответ) также имеет полное регулярное выражение для URL-адресов. Я вообще ничего не вижу, удаленно, вообще в этом вопросе, который задает общий пример использования регулярных выражений в Python, что хорошо, потому что это было бы слишком широко, чтобы даже учитывать ответ. Дубликат идеален. – TigerhawkT3

+0

@ TigerhawkT3 Вопрос в том, как использовать регулярное выражение для получения «/ foo» и «12345» из строки типа «/ foo/client/12345». Второй вопрос в дубликате также совершенно не связан. – smarx

ответ

1

Вот эквивалент в Python 2.7:

import re 
from urlparse import urlparse 

url = urlparse('http://localhost:8080') 

match = re.match(r'(.*)/client/([0-9]+)', url.path) 

EDIT

Вот как вы будете использовать матч, чтобы получить отдельные компоненты (только гадать, что вы хотите делать дальше):

if match: 
    prefix = match.group(1) 
    client_id = int(match.group(2)) 
3

Почему бы не использовать urlparse? Батареи включены :-).

>>> import urlparse 
>>> urlparse.urlparse("http://localhost:8080") 
ParseResult(scheme='http', netloc='localhost:8080', path='', params='', query='', fragment='') 
Смежные вопросы