我的问题是this one的变体。我好像搞不懂这个。

given = "{abc, xyz}, 123, {def, lmn, ijk}, {uvw}, opq"
expected = ["{abc, xyz}", "123", "{def, lmn, ijk}", "{uvw}", "opq"]

如上例所示,expected中的项可以是{..., ...}或只是另一个string
多谢提前。

最佳答案

我认为下面的regexp适合这个工作。无论如何,您不必有嵌套的花括号(据我所知,嵌套的花括号不能用正则表达式解析)

>>> s= "{abc, xyz}, 123, {def, lmn, ijk}, {uvw}, opq"
>>> re.findall(r",?\s*(\{.*?\}|[^,]+)",s)
['{abc, xyz}', '123', '{def, lmn, ijk}', '{uvw}', 'opq']

关于python - Python:按模式分割字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21423877/

10-11 10:21