我的问题是这个,有一个字符串
[word in IN ('hello', 'world'), key1=1100, key2=1200]
我需要一个包含以下内容的列表
[word in IN ('hello', 'world'),
key1=1100,
key2=1200
]
显然用逗号分割不起作用,因此进行了正则表达式分组。
pattern= re.compile(r"(.*), [a-zA-Z]?", re.DOTALL)
string = "[word in IN ('hello', 'world'), key1=1100, key2=1200]"
for item in re.findall(pattern, string):
print item
我想做的是仅匹配逗号,之后将出现空格和字母,但是对我来说,结果不正确。
[word in IN ('hello', 'world'), key1=1100
仍然是贪婪的匹配。任何帮助将不胜感激。
答案 0 :(得分:1)
您可以使用正向超前进行re.split()
:
In [3]: re.split(r", (?=[a-zA-Z])", s)
Out[3]: ["[word in IN ('hello', 'world')", 'key1=1100', 'key2=1200]']