2017-08-02 10 views
-3

すべてのキャリッジリターンを入力行のコマンドに置き換えようとしています。複数のキャリッジリターンが存在する場合を除いて、正常に動作します。 Pythonのstring.replace()関数では、同じ項目の複数のインスタンスを1つのように扱う方法については情報がありません。これは可能ですか?例えばPython replace - 複数のインスタンスを1つとして扱う

、この行:

This is\nA sentence\nwith multiple\nbreaklines\n\npython. 

はこのように終わる必要があります。

This is, A sentence, with multiple, breaklines, python. 

しかし、それは実際にこの変身:

This is, A sentence, with multiple, breaklines, , python. 
+0

実際にコードを表示するためには、コードの問題を特定するのに役立ちます。 –

+0

リストを手動で反復して置き換えることができます。正規表現はここでも役に立つかもしれません。 – Carcigenicate

+0

@Carcigenicateは正しい:正規表現を使用し、任意の数の改行を1つのマッチとして扱う: "\ n" + – Prune

答えて

2

あなたは正規表現を使用することができます。

In [48]: mystr = "This is\nA sentence\nwith multiple\nbreaklines\n\npython." 
In [49]: re.sub(r'\n+', ', ', mystr) 
Out[49]: 'This is, A sentence, with multiple, breaklines, python.' 

が一つ以上の\nさんが隣同士にだと,に置き換えどこ正規表現パターンが一致しました。

関連する問題