Jar*_*red 0 python regex escaping key
这个问题建立在: 从包含键值对的字符串中获取python字典
我想得到包含等于符号转义的值的键值对.
r = "key1=value1 key2=value2 request=http://www.pandora.com/json/music/artist/justin-moore?explicit\\=false uri=3DLoiRDsBABCAA9FvE1htRg\\=\\="
regex = re.compile(r"\b(\w+)=([^=]*)(?=\s\w+=\s*|$)")
d = dict(regex.findall(r))
print(d)
{'key2': 'value2', 'key1': 'value1'}
Run Code Online (Sandbox Code Playgroud)
我似乎无法获得带有转义等号的值.我很确定([^ =]*)部分是错误的.我想我需要匹配任何不包含下一个键的东西=
不要使用字符串拆分工作的正则表达式:
dict(s.split('=', 1) for s in r.split())
Run Code Online (Sandbox Code Playgroud)
演示:
>>> r = "key1=value1 key2=value2 request=http://www.pandora.com/json/music/artist/justin-moore?explicit\\=false uri=3DLoiRDsBABCAA9FvE1htRg\\=\\="
>>> dict(s.split('=', 1) for s in r.split())
{'key2': 'value2', 'key1': 'value1', 'request': 'http://www.pandora.com/json/music/artist/justin-moore?explicit\\=false', 'uri': '3DLoiRDsBABCAA9FvE1htRg\\=\\='}
Run Code Online (Sandbox Code Playgroud)
这消除了转义=字符的需要.
| 归档时间: |
|
| 查看次数: |
4843 次 |
| 最近记录: |