2016-05-14 13 views
6

So come rimuovere tutta la punteggiatura in una stringa.Come si eliminano tutti i segni di punteggiatura iniziali e finali in Python?

import string 

s = '.$ABC-799-99,#' 

table = string.maketrans("","") # to remove punctuation 
new_s = s.translate(table, string.punctuation) 

print(new_s) 
# Output 
ABC79999 

Come si eliminano tutti i segni di punteggiatura iniziale e finale in Python? Il risultato desiderato di '.$ABC-799-99,#' è 'ABC-799-99'.

+2

's.strip (string.punctuation) ' – zondo

+1

I ho cercato su Google il titolo della tua domanda e il duplicato collegato è stato il primo risultato, con la soluzione esatta che stai cercando. Per favore fai più ricerche in futuro. – TigerhawkT3

+0

@ TigerhawkT3, thx, ho fatto ricerche su SO. – SparkAndShine

risposta

10

Fai esattamente ciò che hai menzionato nella tua domanda, ti basta str.strip it.

from string import punctuation 
s = '.$ABC-799-99,#' 

print(s.strip(punctuation)) 

uscita:

ABC-799-99 

str.strip può prendere più caratteri da rimuovere.

Se si voleva solo per rimuovere la punteggiatura leader si potrebbe str.lstrip:

s.lstrip(punctuation) 

O rstrip punteggiatura finale:

s.rstrip(punctuation) 
+0

Thx. Se manterrò '$', 's.strip (string.punctuation.replace ('$', ''))', è un modo migliore? – SparkAndShine

+1

@sparkandshine, non preoccuparti, penso che .punctuation.replace ('$', '') 'è abbastanza buono, l'altra opzione è creare manualmente una stringa di caratteri di punteggiatura meno $ e usare quello che penso sarebbe molto più arduo. –

Problemi correlati