2012-05-17 58 views
5

Tengo una línea que tiene muchas palabras y caracteres. Sólo quiero quitar la parte que está incluido entre llaves dobles

{{ }} 

que probé ?={{.*}} pero no estoy haciendo nada.

+0

¿Puedes haber anidado llaves? –

+0

Eso es porque Python no se ocupa de las llaves. Ver 'from __future__ import llaves ' (estoy bromeando, para alguien nuevo en Python) – SomeKittens

+0

Así que está anidado pero entre dos llaves consecutivas son continuas y nada entre ellas –

Respuesta

7

Prueba esto:

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

Tenga en cuenta que { y } son por lo general los caracteres especiales de expresiones regulares y por lo general deben acompañarse de una barra invertida para obtener su significado literal. Sin embargo, en este contexto, se interpretan como literales.

ver su funcionamiento en línea: ideone

+0

Funcionó para mr.Thanx @ideon –

+0

Tenga en cuenta que el segundo argumento en 're.sub (...)' se puede pasar una función a. Esta función se llamará para cada sustitución con un objeto match. La cadena devuelta de esta función será el reemplazo de esa sustitución. Esto podría ser útil al procesar variables en una cadena, o elementos similares. –

4

Si usted está tratando de extraer el texto de dentro de las llaves, intentar algo como:

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

group(1) contendrá la cadena 'pera'

+0

Quiero eliminarlos de la línea existente –

+0

por lo tanto, esta coincidencia no ayudará en mi caso –