【问题标题】:Regex match group of words and parenthesis after comma正则表达式匹配单词组和逗号后的括号
【发布时间】:2020-10-27 10:07:16
【问题描述】:

我有一个这样的字符串:

aaaa (aa), bbbb, b2b2b2 (bbbb), ccc, c33 (ccc), ddd, d222, d33 (ddd)

我想拆分它以提取逗号后跟括号后的每个组:

aaaa (aa)
bbbb, b2b2b2 (bbbb)
ccc, c33 (ccc)
ddd, d222, d33 (ddd)

我尝试了几个正则表达式,甚至是Parse library,但都没有成功

欢迎任何想法!

提前谢谢你!!

【问题讨论】:

标签: python regex split regex-group


【解决方案1】:

使用 Lookbehind

例如:

import re

s = "aaaa (aa), bbbb, b2b2b2 (bbbb), ccc, c33 (ccc), ddd, d222, d33 (ddd)"
print(re.split(r"(?<=\)),", s))

输出:

['aaaa (aa)', ' bbbb, b2b2b2 (bbbb)', ' ccc, c33 (ccc)', ' ddd, d222, d33 (ddd)']

【讨论】:

    【解决方案2】:

    我不知道我们如何通过正则表达式来做到这一点,但这里有一个非常简单的衬线:

    string = '''aaaa (aa), bbbb, b2b2b2 (bbbb), ccc, c33 (ccc), ddd, d222, d33 (ddd)'''
    [i.strip().strip()+")"  if ")" not in i else i.strip() for i in string.split("),")]
    

    给出:

    ['aaaa (aa)', 'bbbb, b2b2b2 (bbbb)', 'ccc, c33 (ccc)', 'ddd, d222, d33 (ddd)']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2021-07-31
      • 2015-04-20
      • 2014-10-22
      相关资源
      最近更新 更多