2013-04-23 27 views
7

可以說我有:更換2串蟒蛇之間的所有文字

a = r''' Example 
This is a very annoying string 
that takes up multiple lines 
and [email protected] a// kind{s} of stupid symbols in it 
ok String''' 

我需要一種方法做替換(或者直接刪除),並在與文本「這」和「確定」,這樣,當我稱它,現在等於:

a = "Example String" 

我找不到任何似乎工作的通配符。任何幫助深表感謝。

回答

6

您需要Regular Expression

>>> import re 
>>> re.sub('\nThis.*?ok','',a, flags=re.DOTALL) 
' Example String' 
0
a=re.sub('This.*ok','',a,flags=re.DOTALL) 
0

如果你想第一個和最後的話:

re.sub(r'^\s*(\w+).*?(\w+)$', r'\1 \2', a, flags=re.DOTALL) 
3

的DOTALL標誌是關鍵。通常,'。'字符與換行符不匹配,所以您不匹配字符串中的行。如果您設置了DOTALL標誌,那麼re將匹配'。*'跨越需要的行數。