Изолировать идентификатор пользователя в Facebook из URL с помощью регулярного выражения Python - PullRequest
0 голосов
/ 16 декабря 2011

хорошо, я нашел это регулярное выражение из переполнения стека, которое может изолировать URL и ID, но когда я пытался использовать его в обработчике приложений (py), всплывающее сообщение об ошибке «ничего не повторяется, я знаю, что есть ошибка в Python Что касается повторения этого регулярного выражения, кто-нибудь может это исправить? tx

  File "C:\Program Files\Python27\lib\re.py", line 244, in _compile
    raise error, v # invalid expression
error: nothing to repeat

образец кода

#   patt = '(?:http:\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\-]*)?'
#   tst = self.request.get("form_fbURL")
#   m=re.match(patt,tst)

Во всяком случае, я не хороший программист на Python:)

Ответы [ 2 ]

6 голосов
/ 16 декабря 2011

Существует модуль urlparse для анализа URL.
Модуль urlparse переименован в urllib.parse в Python 3.0.

$ python
>>> from urlparse import urlparse
>>> urlparse('http://www.facebook.com/hello/world.php?id=789')
ParseResult(scheme='http', netloc='www.facebook.com', path='/hello/world.php', params='', query='id=789', fragment='')
0 голосов
/ 16 декабря 2011

Попробуйте этот шаблон вместо:

patt = '(?:http(|s):\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\-])*'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...