2016-04-03 15 views
2
formatter_fn = lambda sentence: re.sub(r'([^\s\w\.])+', '', sentence).lower() 
formatter_fn('\r\ndirected; by Nolan.') 

を\ rを\ n個の文字を削除するには、このは\r\ndirected by nolan.としての出力が得られますが、私はこのケースで\r\nを削除する方法directed by nolan.どのように正規表現のpythonで

としてそれをしたいですか?

ありがとうございます!

+1

を使用することができますか?あるいは '\ r \ n 'は文字列のどこにあってもかまいませんか? – TigerhawkT3

+0

文字列のどこにでもITが出現する可能性があります。 – dumper

+0

'|(\ r \ n)'を追加することはできますか? – TigerhawkT3

答えて

1

この

re.sub(r'[^ \w\.]', '', sentence).lower() 

\sを試してみてはセット[ \t\n\r\f]と同等ですが、あなたは(私は推測)のみのブランクスペースを必要とします。

あなたは

re.sub(r'[^\s\w\.]', '', sentence).lower() 

を使用するときには(space\t\n\r\f)<以外のものと一致することになる - \sの一部、\w、および.。そのため、文字列に\r\nを一致させることができませんでした。

あなたがセットに\tを含めたい場合は、 `...下の()。lstrip( '\ r \ nの')`適しているであろう

re.sub(r'[^ \\t\w\.]', '', sentence).lower() 
+0

私はこれを使用しています、それは動作します。しかし、私はなぜかについては確信しています 're(r '[^ \ s \ w \。]'、 ''、sentence).lower()'は動作しません。あなたは知っていますか ? – dumper

+1

@dumperが答えに説明を追加 – rock321987

+0

@ダンパーもっと説明が必要な場合は、お気軽にお尋ねください。 – rock321987