基于特殊条件,使用Python按单词之间的逗号分割字符串

3
我的问题是这样的,有一个字符串。
[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个回答

1
你可以使用正向预查来完成 re.split()
In [3]: re.split(r", (?=[a-zA-Z])", s)
Out[3]: ["[word in IN ('hello', 'world')", 'key1=1100', 'key2=1200]']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接