根据带有特殊条件的单词之间的逗号分割字符串-Python

时间:2018-12-21 00:03:49

标签: python regex

我的问题是这个,有一个字符串

[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

仍然是贪婪的匹配。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用正向超前进行re.split()

In [3]: re.split(r", (?=[a-zA-Z])", s)
Out[3]: ["[word in IN ('hello', 'world')", 'key1=1100', 'key2=1200]']