【问题标题】:Python Regex: Ignore Brackets [duplicate]Python正则表达式:忽略括号[重复]
【发布时间】:2019-02-08 04:52:27
【问题描述】:
LIST = ['ichenbsdr1.chen.com', 'ichenbsds1(SSI15170CCD)',
        'ichenbsds1', 'ichenbsdm2.chen.com',
        'ichenbsdm2.chen.com(ABQB344DEGH)', 'ichenbsdm2']

需要使用上面列表中的正则表达式进行过滤。无论索引得到什么 括号中的信息需要去掉。 LIST[1]'ichenbsds1(SSI15170CCD)',必须删除 "(SSI15170CCD)" 并显示 'ichenbsds1' 单独与 LIST[4] 中的相同。

我有这个正则表达式 r'(.*?)\(.*\)' 来删除括号和任何东西 出现在这些括号内。但是当我在下面的脚本中运行时 没有给出确切的输出。

sws=[]
for line in LIST:
    Type = re.search(r'(.*?)\(.*\)', line)
    sws.append(Type)
    print (sws)

预期输出:

['ichenbsdr1.chen.com', 'ichenbsds1', 'ichenbsds1', 'ichenbsdm2.chen.com', 'ichenbsdm2.chen.com', 'ichenbsdm2']

【问题讨论】:

    标签: python regex


    【解决方案1】:

    使用re.sub 删除括号之间的所有内容

    >>> [re.sub(r'\(.*?\)', '', s) for s in LIST]
    ['ichenbsdr1.chen.com', 'ichenbsds1', 'ichenbsds1', 'ichenbsdm2.chen.com', 'ichenbsdm2.chen.com', 'ichenbsdm2']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-16
      • 2021-09-22
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多