2016-03-04 48 views
-2

我有這樣的字符串:正則表達式從字符串中找到子

str1 = eval(sum(feat(57),feat(57),feat(66))/feat(57)); 
str2 = eval(sum(feat(47),feat(55),feat(86))); 
str3 = eval(feat(47)/sum(feat(51),feat(52),feat(53))); 
str4 = eval(feat(63)/sum(feat(57):feat(66))); 

我想寫一個正則表達式來擺脫爲:

str1_output = (feat(57),feat(57),feat(66)) 
str2_output = (feat(47),feat(55),feat(86)) 
str3_output = (feat(51),feat(52),feat(53)) 
str4_output = (feat(57):feat(66)) 

我以下列方式嘗試:

output = re.findall(re.compile(r"sum.*"),str_name) 

這是給出正確的輸出,除了str1。

請給我一種方法來找出所需的輸出。

+0

你嘗試過什麼嗎? – evuez

+0

是的,@evuez。我試圖通過以下方式: re.findall(re.compile(r「sum。*」),str1) 這個正則表達式給出正確的輸出,除了'str1' –

+0

好吧然後添加到您的問題,你會獲得更多幫助:) – evuez

回答

0

我想你可以嘗試

sum\((?:\([^()]*\)|.)*?\) 

它匹配sum及以下匹配對括號,不管它們之間。

實施例在regex101

問候。

相關問題