2016-04-11 12 views
0

ben böyle bir şey denedim ama biraz uzundur:Regex kullanarak, Python'daki bir satırdaki tüm noktalama işaretlerini almanın en iyi yolu?

punct_tab=[] 
for line in f: 
    tab=line.split() 
    for word in tab: 
     if re.search(r",",word)!=0: 
       punct_tab.append(',') 
     if re.search(r".",word)!=0: 
       punct_tab.append('.') 


     .... ETC 

daha iyi bir fikrin var mı? regex kullanarak

>>> import string 
>>> 
>>> line = "Hello, world!" 
>>> 
>>> punctuation = set(string.punctuation) 
>>> print([c for c in line if c in punctuation]) 
[',', '!'] 
+0

Neden bunun için bir düzenli ifade kullanmak istiyorsunuz? –

+0

Hiçbir zaman doğrulamayı kontrol etmek için '! =/==' kullanın. Sadece 're.search (r ",", word) 'ise kullanın. – Kasramvd

cevap

1

Sen string.punctuation kullanabilirsiniz ederiz

>>> import re 
>>> line = 'string. With; Punctuation?' 
>>> re.findall('[^\w\s]', line) 
['.', ';', '?'] 
+0

Veya, son bölüm için: 'baskı (noktalama işareti (satır))' –

+0

@ Robᵩ iyi yakalamak, sipariş burada önemli değil ise. – alecxe

İlgili konular