好吧我发现这个来自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程序员:)
答案 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\-])*'