使用python regex从URL中隔离Facebook URL用户ID

时间:2011-12-15 22:20:04

标签: python regex google-app-engine

好吧我发现这个来自Stack溢出的正则表达式,它可以隔离URL和ID,但是当我试图在app引擎(py)中使用它时,一个错误的弹出窗口说“没有什么可重复的,我知道Python中的一个bug关于这个正则表达式的重复,任何人都可以解决这个问题吗?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 个答案:

答案 0 :(得分:6)

有一个urlparse模块来解析网址 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='')

答案 1 :(得分:0)

请尝试使用此模式:

patt = '(?:http(|s):\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\-])*'