2010-04-07 6 views

Répondre

10

Utilisez des expressions régulières.

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

Ceci retirera également un seul espace optionnel après les deux points.

+0

Merci! Les docs de regexp de Python sont assez intimidants :( – veb

+0

@veb Une intro moins intimidante aux expressions régulières de python: http://www.amk.ca/python/howto/regex/ – Jacinda

+0

@veb: bienvenue à SO. Si une réponse est affichée ce que vous cherchez, appuyez sur l'icône de coche pour "accepter" –

0

Cela supprime tous les mots qui se terminent par un ":":

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

ou utiliser une expression du générateur:

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

@David: ce n'est pas une expression de générateur, c'est une expression de liste –

+0

merci pour la correction! – cryo

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

cela va créer une liste. vous pouvez les rejoindre après.

Questions connexes