2010-04-07 63 views

Respuesta

10

Use expresiones regulares.

import re 
blah = "word word: monty py: thon" 
answer = re.sub(r'\w+:\s?','',blah) 
print answer 

Esto también extraerá un único espacio opcional después de los dos puntos.

+0

¡Gracias! Los documentos de regexp de Python son bastante intimidantes :( – veb

+0

@veb Una introducción menos intimidante a las expresiones regulares de python: http://www.amk.ca/python/howto/regex/ – Jacinda

+0

@veb: bienvenido a SO. Si hay una respuesta publicada lo que estás buscando, presiona el ícono de marca de verificación para "aceptarlo" –

0

Esto elimina todas las palabras que terminan con un ":":

def RemoveDynamicWords(s): 
    L = [] 
    for word in s.split(): 
     if not word.endswith(':'): 
      L.append(word) 
    return ' '.join(L) 
print RemoveDynamicWords('word: blah') 

o utilizar una expresión generadora:

print ' '.join(i for i in word.split(' ') if not i.endswith(':')) 
+0

@David: esa no es una expresión de generador, eso es una expresión de lista. –

+0

¡gracias por la corrección! – cryo

0
[ chunk for chunk in line.split() if not chunk.endswith(":") ] 

Esto creará una lista. puedes unirlos después.

Cuestiones relacionadas