Python正则表达式找到匹配的括号

时间:2016-02-18 13:42:43

标签: python regex

我知道我可能会问很多,但让我们试一试。

我想获得一个正则表达式,它将捕获两对括号之间的文本。 假设括号为(

我想以这种格式捕捉一些东西:((tt anything_really ...)) 现在这里有一些测试用例:

((tt da dada))

((tt 
da
dada
))

((tt
da
dada))

((tt
da((da))
dada))

((tt
((this is not))
da
((thi si not))
dada
))

((tt
da
dada
))
((this not))
((capture))

我最初想出的是这样的事情: \(\(tt.*?\)\)\(\(tt[^\)]+\)\)

但是,这最后两种情况都失败了(过早捕获)))。

I've asked a similar question before and got an answer但是,我不知道如何将这些移植到python,也不知道是否可能。

1 个答案:

答案 0 :(得分:0)

import re

strings = ['((tt da dada))' ,'((tt da dada ))', '(tt da dada))', '((tt da((da)) dada ))','((tt ((this is not)) da ((thi si not)) dada))']

for s in strings:

    match = re.search(r'(\(\(tt.*\)\))',s)

    if match:
        print match.group(1)

结果:

((tt da dada))
((tt da dada ))
((tt da((da)) dada ))
((tt ((this is not)) da ((thi si not)) dada))