2017-01-27 8 views
0

改行、タブを扱う古典的な方法は、.strip()または.remove( '\ n'、 '')です。 しかし、これらのメソッドが失敗する特別なケースがあります。すべての種類の改行または書式をPythonの文字列から削除するには

  'H\xf6cke\n\n:\n\nDie'.strip() 

    gives: 'H\xf6cke\n\n:\n\nDie' 

がどのように私は.removeなどによって1(ずつをカバーしなければならないであろうこれらのまれなケースをキャッチすることができます(「*」、「」)?上記の私が出会った一例です。

+1

ご希望の出力は何を使用することができますか? –

+0

これは 'H \ xf6cke:Die' –

答えて

1
In [1]: import re 

In [2]: text = 'H\xf6cke\n\n:\n\nDie' 

In [3]: re.sub(r'\s+', '', text) 
Out[3]: 'Höcke:Die' 

\ S:[\ T \ n \ R \ F \ V]を含む

マッチのUnicode空白文字( および他の多くの文字、例えば非破壊スペース は多くの言語でタイポグラフィの規則によって義務付けられています)。 ASCIIフラグが の場合、[\ t \ n \ r \ f \ v]のみが一致します(ただし、このフラグは正規表現全体に適用されます)ので、明示的な[\ t \ n \ r \ f \ v] が良い選択かもしれません)。

'+'

得RE 先行REの1回以上の繰り返しに一致させます。

+1

となるでしょう。すべてのタイプに.remove( '\ *'、 '')を追加するのではなく、確実に削除されるさまざまな形式の書式を扱うため、優れた答えです。 –

0

使用replaceあなたは何

a = "H\xf6cke\n\n:\n\nDie" 
print(a.replace("\n","")) 

# Höcke:Die 
0

ストリップのマニュアルインポートしたくない場合:先頭と削除 最後の空白で
戻り、文字列Sのコピーを。 charsが指定されていて、Noneでない場合は、代わりに文字を削除してください。

これは、テキスト内の '\ n'を削除しなかった理由です。

あなたは「\ n」の出現を削除したい場合は、

'H\xf6cke\n\n:\n\nDie'.replace('\n','') 
Output: Höcke:Die 
関連する問題