2016-11-24 123 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'\([^()] + \)$''應該足夠了。 –

相關問題