Ersetzen Sie alle Texte zwischen 2 Strings Python

Lets sagen, ich habe:

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

Ich brauche einen Weg, um einen Ersatz zu ersetzen (oder einfach nur zu löschen) und Text zwischen "This" und "ok", so dass, wenn ich es nennen, ein jetzt gleich ist:

 a = "Example String" 

Ich kann keine Wildcards finden, die scheinen zu arbeiten. Jede Hilfe wird sehr geschätzt.

4 Solutions collect form web for “Ersetzen Sie alle Texte zwischen 2 Strings Python”

Sie brauchen Regular Expression :

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

Das DOTALL-Flag ist der Schlüssel. Normalerweise ist das "." Zeichen stimmt nicht mit Zeilenumbrüchen überein, so dass Sie nicht über Zeilen in einer Zeichenfolge übereinstimmen. Wenn du das DOTALL-Flag gesetzt hast, wird '' '' 'über' so viele Zeilen 'passen.

 a=re.sub('This.*ok','',a,flags=re.DOTALL) 

Wenn Sie erste und letzte Worte wollen:

 re.sub(r'^\s*(\w+).*?(\w+)$', r'\1 \2', a, flags=re.DOTALL) 
Python ist die beste Programmiersprache der Welt.