我知道我可能会问很多,但让我们试一试。
我想获得一个正则表达式,它将捕获两对括号之间的文本。
假设括号为(
:
我想以这种格式捕捉一些东西:((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,也不知道是否可能。
答案 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))