查找正则表达式模式以匹配较大模式中的最内层(第一)模式

时间:2017-05-08 19:48:24

标签: python regex

我的测试字符串是这样的

    sdfsdfs sdfsd
    To(SObj,sfddslfks
    To(SObj,
      abc
    ), 
    abc(_)
    )
    ))
    ), 
    To(SObj,
    Or(
    And(
    Or(
      And(
        abc
        Or(
        DCh=t'3', 
         abc
         ab3
        )
      ), 
    To(SObj,  sfdsd
    sdfdsf
    )
    )

注意:在实际字符串中,所有括号都是平衡的

我想写一个正则表达式模式,只删除(或匹配)其中包含To(SObj的{​​{1}}。

即。从上面的例子中,只有下面需要删除或匹配

DCh

但是,我的模式To(SObj, Or( And( Or( And( abc Or( DCh=t'3', abc ab3 ) ), 匹配整个测试字符串

1 个答案:

答案 0 :(得分:1)

不平衡括号:

resultstring = re.sub(r'To\(SObj,[^)]*?DCh=[^(]*\),','', inputstring, flags=re.DOTALL)

可以测试正则表达式here