2012-05-17 13 views
5

Ho una riga che ha molte parole e caratteri. Voglio solo per rimuovere la parte che è inclusa nel doppie parentesi graffePython regex per rimuovere sottostringhe all'interno di parentesi graffe

{{ }} 

ho provato ?={{.*}} ma non ricevo nulla.

+0

Puoi avere parentesi graffe nidificate? –

+0

Questo perché Python non si occupa di parentesi graffe. Vedi 'da __future__ import braces' (Sto scherzando, per chiunque sia nuovo in Python) – SomeKittens

+0

Quindi è annidato ma tra due parentesi consecutive sono continue e niente tra loro –

risposta

7

Prova questo:

import re 
s = re.sub('{{.*?}}', '', s) 

noti che { e } sono di solito i caratteri speciali nelle espressioni regolari e di solito dovrebbe essere preceduti da una barra inversa per ottenere il loro significato letterale. Tuttavia in questo contesto sono interpretati come letterali.

vederlo lavorare on-line: ideone

+0

Ha funzionato per mr.Thanx @ideon –

+0

Nota che il secondo argomento in 're.sub (...)' può essere passato a una funzione in. Questa funzione sarà chiamata per ogni sostituzione con un oggetto match. La stringa restituita da questa funzione sarà la sostituzione per quella sostituzione. Questo potrebbe essere utile quando si elaborano variabili in una stringa, o cose simili. –

4

Se si sta tentando di estrarre il testo da dentro le parentesi graffe, provare qualcosa di simile:

import re 
s = 'apple {{pear}} orange {banana}' 
matches = re.search(r'{{(.*)}}', s) 
print matches.group(1) 

group(1) conterrà la stringa 'pero'

+0

Voglio rimuoverli dalla linea esistente –

+0

quindi questa corrispondenza non mi aiuterà nel mio caso –

Problemi correlati