2013-04-23 12 views
7

Powiedzmy mam:Wymienić cały tekst pomiędzy 2 ciągi pytona

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''' 

Potrzebuję sposób zrobić zastąpić (lub po prostu usunąć) i tekst pomiędzy „To” i „OK”, tak, że kiedy zadzwoń, a teraz jest równa:

a = "Example String" 

Nie mogę znaleźć żadnych symboli wieloznacznych, które wydają się działać. Każda pomoc jest doceniana.

Odpowiedz

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

Jeśli chcesz pierwsze i ostatnie słowa:

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

Flaga dotall jest kluczem. Zazwyczaj "." znak nie pasuje do nowych linii, więc nie pasujesz do linii w ciągu znaków. Jeśli ustawisz flagę DOTALL, re będzie pasować do ". *" Na tyle linii, ile potrzeba.

Powiązane problemy