Python:按模式分割字符串

标签 python regex string split

我的问题是 this one 的变体。我似乎无法弄清楚这一点。

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

如上例所示,expected 中的项目可以是 {..., ...} 或只是另一个字符串

提前非常感谢。

最佳答案

我认为以下正则表达式适合这项工作。但是,您不必有嵌套的大括号(据我所知,无法使用正则表达式解析嵌套的大括号)

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

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

相关文章:

python multiprocessing - 在使用 Process.start(target=func) 调用的函数中访问进程名称

python - 用 pandas 求和不同的列。 Python

python - resource 可选参数,用于检索 Flask Restful 上的所有数据

c# - 正则表达式:查找不同字符串变体中的字符串

string - 寻求字符串处理挑战的算法(或指向文献的指针)

c# - 将 IP 地址(整数)解析为名称

javascript - 不使用常用方法在JS中对字符串进行重新排序

python - 如何将 numpy.recarray 转换为 numpy.array?

python - 尝试从正则表达式生成 pandas 数据框列时出现问题?

.net - 双等号的正则表达式