2013-04-23 3 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''' 

私は交換する(あるいは単に削除)を行うための方法を必要とし、「これ」と「OK」とき、私ように間のテキスト今すぐそれを呼び出す:

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は必要なだけ多くの行に渡って '。*'とマッチします。