2016-11-24 78 views
0

我正在抓取和循环可以有一个括号或多个的字符串,如下所示。我想要最后一个括号内的字符串。如何使用正则表达式从多个括号中查找字符串?

strOne = "This contains (18xp) (23lo) (SerialA)" 
strTwo = "This contains (jxp) (SerialB)" 
strThree = "Some strings (randomA9)" 

我尝试使用下面的代码,但它只能捕捉第一:

regFormat = '(\([A-Z0-9]+\))' 
pathReg = re.compile(regFormat) 
findr = re.findall(pathReg , strOne) 
print(findr) 

结果:[ '(18xp)']

+0

如果您预计1个单场,为什么要用're.findall'?使用're.search'。这些括号总是在字符串的末尾吗? –

回答

1

你必须使用正规的标志指示开始和结束的行。
尝试:

'^.*?(\([A-Z0-9]+\))$' 
+0

'^。*?'是多余的,'r'\([^()] + \)$''应该足够了。 –