gpt4 book ai didi

python - 如果逗号不在括号之间,则以逗号分隔,同时允许字符在括号外,并以相同的逗号分隔

转载 作者:太空宇宙 更新时间:2023-11-04 02:03:57 25 4
gpt4 key购买 nike

我有这个 python 脚本。这使用了一些正则表达式。我想拆分字符串 s,但要分隔逗号,同时忽略括号内存在的任何逗号。

s = """aa,bb,(cc,dd),m(ee,ff)"""
splits = re.split(r'\s*(\([^)]*\)|[^,]+)', s, re.M|re.S)
print('\n'.join(splits))
Actual output:
aa
,
bb
,
(cc,dd)
,
m(ee
,
ff)
Desired output:
aa
bb
(cc,dd)
m(ee,ff)

所以我无法让它处理括号外的文本。希望有人能帮助我。

最佳答案

您可以将此正则表达式与拆分前瞻性结合使用:

>>> s = """aa,bb,(cc,dd),m(ee,ff)"""
>>> print ( re.split(r',(?![^()]*\))', s) )
['aa', 'bb', '(cc,dd)', 'm(ee,ff)']

RegEx Demo

正则表达式详细信息:

  • ,:匹配逗号
  • (?![^()]*\)):一个否定的先行断言,确保我们不匹配 (...) 中的逗号断言在 0 个或多个非括号字符之后没有 )

关于python - 如果逗号不在括号之间,则以逗号分隔,同时允许字符在括号外,并以相同的逗号分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55114986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com