2017-07-03 18 views

回答

1

這裏有一種方法,使用re.sub和回調:

>>> import re 
>>> string = "'In Absence of Good Men'" 
>>> re.sub("'(.*?)'", lambda x: x.group(1).replace(' ', ''), string) 
'InAbsenceofGoodMen' 

可以使這個有點更具可讀性,通過了移動拉姆達到它自己的功能:

def foo(m): 
    if m: 
     return m.group(1).replace(' ', '') 

string = "'In Absence of Good Men'" 
new_string = re.sub("'(.*?)'", foo, string) 

您可以捕獲不匹配,並以這種方式更好地處理錯誤。

+0

它像魔術一樣工作:)。謝謝 –

+0

你能告訴我這個組方法在做什麼嗎? –

+0

@SeemaMudgil當然。回調接收到一個「匹配」對象。爲了提取匹配的字符串,你可以調用'group(1)'。 (1)在這種情況下,因爲在正則表達式中有一個捕獲組。如果沒有匹配,'foo'收到'None',所以你需要'if'檢查。 –

相關問題