2013-07-24 21 views
0

說我想匹配:如何在大括號之間不匹配?

r'(?P<as>a+)' 

我怎能無視僅使用正則表達式語法是花括號之間的所有比賽:

"{aabaa} a" #I just want the last 'a' matched 
+0

're.sub('\ {[^}] \}','',text)'? –

回答

0

正則表達式是不是匹配真正的最佳。但是你可以使用像一招:

a+(?![^{}]*}) 

但如果有不平衡{}這是不行的。

0

一個選項可能是在運行正則表達式之前刪除大括號內的內容。

>>> pat = r'(?P<as>a+)' 
>>> string = "{aabaa} a" 
>>> m = re.search(pat, re.sub(r'\{.*?\}', '', string)) 
>>> m.group('as') 
'a'