2016-05-14 47 views
6

Ich weiß, wie man die ganze Interpunktion in einer Zeichenkette entfernt.Wie entferne ich alle führenden und nachfolgenden Satzzeichen 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 

Wie entferne ich alle führenden und nachgestellten Satzzeichen in Python? Das gewünschte Ergebnis von '.$ABC-799-99,#' ist 'ABC-799-99'.

+2

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

+1

Ich googelte den Titel Ihrer Frage und das verknüpfte Duplikat war das allererste Ergebnis, mit der genauen Lösung, nach der Sie suchen. Bitte forschen Sie in Zukunft mehr. – TigerhawkT3

+0

@ TigerhawkT3, Thx, ich habe Forschung über SO. – SparkAndShine

Antwort

10

Sie tun genau, was Sie in Ihrer Frage erwähnen, Sie nur str.strip es.

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

print(s.strip(punctuation)) 

Ausgang:

ABC-799-99 

str.strip können mehrere Zeichen nehmen zu entfernen.

Wenn Sie wollte nur führende Interpunktion entfernen Sie konnte str.lstrip:

s.lstrip(punctuation) 

Oder rstrip jede Hinter Zeichensetzung:

s.rstrip(punctuation) 
+0

Thx. Wenn ich '$', 's.strip (string.punctuation.replace ('$', ''))' behalten würde, ist das ein besserer Weg? – SparkAndShine

+1

@sparkandshine, keine Sorge, ich denke, '.punctuation.replace ('$', '')' ist ziemlich gut, die andere Option ist manuell eine Zeichenfolge aus Interpunktionszeichen minus $ und mit dem, was ich denke, viel wäre mühsamer. –

Verwandte Themen