使用正则表达式解析参数行的参数中的空格,但不带引号

时间:2015-05-28 19:28:26

标签: python regex

可以用正则表达式解析这样一行:

name=This is tricky pos=81 key=4565 count=1 pass=a_23 find=2

分组

('name=This is tricky', 'pos=81'...)

1 个答案:

答案 0 :(得分:1)

您可以使用\w+=拆分文本,这将返回以下结果:

>>> re.split(r'(\w+=)',s)
['', 'name=', 'This is tricky ', 'pos=', '81 ', 'key=', '4565 ', 'count=', '1 ', 'pass=', 'a_23 ', 'find=', '2']

然后在列表解析中使用zip连接相关元素:

>>> sp=re.split(r'(\w+=)',s)[1:]
>>> [''.join(i) for i in zip(sp[0::2],sp[1::2])]
['name=This is tricky ', 'pos=81 ', 'key=4565 ', 'count=1 ', 'pass=a_23 ', 'find=2']