2016-11-10 10 views
1

文字列を数字のシーケンスで複製してテキストを圧縮するプログラムを作成していますが、句読点を別個のものとして認識させる方法はわかりませんアイテムをリストに追加します。split()を使用するときに句読点を別の項目にする方法

たとえば、この文章ではコンマで区切って、'comma,''comma'という単語は、split()を使用すると異なることを意味します。代わりに'comma' ',' 'comma'を持っています。

私は句読点を取り除くためにしたくない - 私は

+0

ジャスト([句読点を削除] http://stackoverflow.com/questions/265960/best-way-to-strip-punctuation-from-a-string-in-python)分割する前におそらく? –

+0

@ cricket_007しかし、分割後のリストに句読点を残したいと思っています –

+0

ハイフネーションの言葉で何をしますか? –

答えて

4

あなたはこのようなre.splitを使用することができ、リスト内の個別の項目としてそれをしたい:

>>> re.split('([{}])'.format(re.escape(string.punctuation)), "comma,comma") 
['comma', ',', 'comma'] 
+0

''^''は文字セットの先頭ではなく、' '[、 - 。]' 'の' '^' 'の直前に' 'string.punctuation'のバックスラッシュ文字が' ']リテラルハイフンなどを含む文字の範囲を定義します。実際には(通常のテキストではバックスラッシュを使用する人は)それが問題ではありませんが、これはバックスラッシュを除いてすべて正しく処理されます。バックスラッシュの分割が問題になる場合は、 're.escape(string.punctuation)'がこれを修正します。 –

関連する問題