Python 用于提取Twitter查询部分的正则表达式
我想从以下字符串中提取Python 用于提取Twitter查询部分的正则表达式,python,regex,python-2.7,Python,Regex,Python 2.7,我想从以下字符串中提取q和geocode值 ?since_id=261042755432763393&q=salvia&geocode=39.862712%2C-75.33958%2C10mi 我尝试了以下正则表达式 expr = re.compile('\[\=\](.*?)\[\&\]') vals = expr.match(str) 但是,VAL是None。我也不知道如何在之前找到一些东西,比如说,q=与= 不需要正则表达式(使用Python 3): 显然,s
q
和geocode
值
?since_id=261042755432763393&q=salvia&geocode=39.862712%2C-75.33958%2C10mi
我尝试了以下正则表达式
expr = re.compile('\[\=\](.*?)\[\&\]')
vals = expr.match(str)
但是,VAL是None
。我也不知道如何在之前找到一些东西,比如说,q=
与=
不需要正则表达式(使用Python 3):
显然,str
包含您的输入
由于(根据您的标记)您使用的是Python 2.7,因此我认为您需要将import语句更改为:
from urlparse import parse_qs
如果您使用的是2.6版之前的Python,那么import语句是
from cgi import parse_qs
我认为这在没有正则表达式的情况下很容易做到:
string = '?since_id=261042755432763393&q=salvia&geocode=39.862712%2C-75.33958%2C10mi'
parts = string[1:].split('&') # the [1:] is to leave out the '?'
pairs = {}
for part in parts:
try:
key, value = part.split('=')
pairs[key] = value
except:
pass
和
对
应该包含字符串的所有键值对。无论是正则表达式还是非正则表达式,最好使用现有的、经过测试的代码,如urllib。当然!我对它不太熟悉。
string = '?since_id=261042755432763393&q=salvia&geocode=39.862712%2C-75.33958%2C10mi'
parts = string[1:].split('&') # the [1:] is to leave out the '?'
pairs = {}
for part in parts:
try:
key, value = part.split('=')
pairs[key] = value
except:
pass