我正在尝试使用 RE 解析 url 字符串,这是我的模式,qid=(.*?)&+?它确实找到了查询字符串,但如果&url 末尾没有,则它失败!
请查看pythex.org页面,我试图在其中获得“qid”查询字符串的值。
您可以(并且可能应该)使用以下方法解决它urlparse:
>>> from urlparse import urlparse, parse_qs
>>> s = "https://xx.com/question/index?qid=2ss2830AA38Wng"
>>> parse_qs(urlparse(s).query)['qid'][0]
'2ss2830AA38Wng'
Run Code Online (Sandbox Code Playgroud)
至于正则表达式方法,您可以检查&字符串是否存在或结尾:
qid=(.*?)(?:&|$)
Run Code Online (Sandbox Code Playgroud)
(?:...)这是一个非捕获组。