2016-04-11 4 views
0

私はこのような何かをしようとしたが、それは少し長いです:regexを使って、Pythonの行からすべての句読点を取得する最も良い方法はありますか?

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 

あなたはより良いアイデアを持っていますか?正規表現を使用して

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

なぜあなたは、このために正規表現を使用したいのですか? –

+0

検証をチェックするのに '!=/=='を使わないでください。単にre.search(r "、"、word) 'を使用してください。 – Kasramvd

答えて

1

あなたはstring.punctuationを使用することができますありがとうござい

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

または最後の部分は 'print(punctuation.intersection(line))' –

+0

@Robᵩ良いキャッチです。ここでの順序は関係ありません。 – alecxe

1

場合:

あなたは

関連する問題