2010-04-07 16 views

risposta

10

Utilizzare le espressioni regolari.

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

Questo sarà anche tirare fuori un singolo spazio opzionale dopo i due punti.

+0

Grazie! I documenti regexp di Python sono piuttosto intimidatori :( – veb

+0

@veb Un'introazione meno intimidatoria per le espressioni regolari python: http://www.amk.ca/python/howto/regex/ – Jacinda

+0

@veb: benvenuto in SO. Se una risposta inviata è quello che stai cercando, premi l'icona del segno di spunta per "accettarlo" –

0

questo rimuove tutte le parole che finiscono 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 utilizzare un generatore di espressione:

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

@David: non è un'espressione di generatore, è un'espressione di lista –

+0

grazie per la correzione! – cryo

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

questo modo si crea un elenco. puoi unirti a loro in seguito.

Problemi correlati