正则表达式提取部分Twitter查询

mac*_*389 4 python regex python-2.7

我有以下字符串,我想从中提取qgeocode值.

 ?since_id=261042755432763393&q=salvia&geocode=39.862712%2C-75.33958%2C10mi
Run Code Online (Sandbox Code Playgroud)

我试过以下正则表达式.

expr = re.compile('\[\=\](.*?)\[\&\]')
vals = expr.match(str)
Run Code Online (Sandbox Code Playgroud)

但是,vals是None.我也不知道如何才找到的东西,比方说,q==.

Mar*_*der 7

不需要正则表达式(使用Python 3):

>>> from urllib.parse import parse_qs
>>> query = parse_qs(str[1:])
>>> query
{'q': ['salvia'], 'geocode': ['39.862712,-75.33958,10mi'], 'since_id': ['261042755432763393']}
>>> query['q']
['salvia']
>>> query['geocode']
['39.862712,-75.33958,10mi']
Run Code Online (Sandbox Code Playgroud)

显然,str包含您的输入.

由于(根据你的标签)你使用的是Python 2.7,我认为你需要将import语句更改为:

from urlparse import parse_qs
Run Code Online (Sandbox Code Playgroud)

如果您在2.6版之前使用Python,那么import语句就是

from cgi import parse_qs
Run Code Online (Sandbox Code Playgroud)