2016-05-14 31 views
6

Dizgedeki tüm noktalama işaretlerini nasıl kaldıracağımı biliyorum.Python'daki tüm ön ve arka noktalama işaretlerini nasıl yok edebilirim?

import string 

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

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

print(new_s) 
# Output 
ABC79999 

Python'daki tüm ön ve arka noktalama işaretlerini nasıl yok edebilirim? '.$ABC-799-99,#''un istenen sonucu, 'ABC-799-99''dur.

+2

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

+1

Sorgunun başlığını düzenledim ve bağlanan yineleme, aradığınız tam çözümle ilk sonuçtu. Lütfen gelecekte daha fazla araştırma yapın. – TigerhawkT3

+0

@ TigerhawkT3, thx, SO üzerinde araştırma yaptım. – SparkAndShine

cevap

10

Sorunuzda bahsettiğiniz şeyi tam olarak yapıyorsunuz, sadece str.strip.

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

print(s.strip(punctuation)) 

Çıktı: kaldırmak için birden fazla karakter alabilir

ABC-799-99 

str.strip.

sadece lider noktalamayı kaldırmak istiyorsa yapabildin str.lstrip:

s.lstrip(punctuation) 

Ya Verileri, sonda noktalama:

s.rstrip(punctuation) 
+0

Thx. Eğer '$', 's.strip (string.punctuation.replace ('$', ''))' dırsam, daha iyi bir yol mu? – SparkAndShine

+1

@sparkandshine, endişelenmeyin, sanırım .punctuation.replace ('$', '') 'oldukça iyi, diğer seçenek elle bir noktalama işareti karakterleri eksi $ yaratıyor ve bunun çok olacağını düşünüyorum. daha zorlu. –