2016-09-04 6 views
-1

私は美しいスープを使ってウェブページを削ってしまいました。 私は何をしようとしても排除されない '\n'文字を取り除こうとしています。これまでPython文字列から nを削除します

私の努力:

wr=str(loc[i-1]).strip() 
wr=wr.replace(r"\[|'u|\\n","") 
print(wr) 

出力:私は[uは 'N \なくすにはどうすればよい

[u'\nWong; Voon Hon (Singapore, SG 
Kandasamy; Ravi (Singapore, SG 
Narasimalu; Srikanth (Singapore, SG 
Larsen; Gerner (Hinnerup, DK 
Abeyasekera; Tusitha (Aarhus N, DK 

?私は間違って何をしていますか?

フルコードはhereです。

+2

リストの中に「\ n」と「u」の後ろに一重引用符があります。 – thefourtheye

+0

前に存在する '''を取り除く\ n –

+0

私は試しましたが、それはできませんでした。その質問の更新されたコードリンクをご覧ください。 – FlyingAura

答えて

1

ことができます。

rep=["[","u'","\\n"] 
for r in rep: 
    wr=wr.replace(r,"") 

これはcricket_007の答え@と同じである、しかし、彼の答えからの第二部ではありません私のために働かない。私の知る限り、str.replace()はこれらの種類の正規表現検索をサポートしていません。

+0

それは動作します!ありがとうございました:) \ nは特殊文字なので、余分な\を追加します。 – FlyingAura

+0

正しい。また、@ cricket_007が指摘したように、 "生の文字列"表現を使うこともできます:r "\ n" – mpurg

+0

あなたは良い点を作っています。私は 're'モジュールの' replace'を考えていました –

0

バックスラッシュをエスケープするか、生の文字列を使用する必要があります。そうでなければ、改行文字であり、リテラルではありません。\n

また、私はbeautifulsoupがユニコード文字列を出力しているとは思いません。 Pythonの文字列表現はu'blah'

と表示されます。削除する要素のリストは必要ありません。式はあなたが改行文字(二重の「\」)をエスケープする必要があり

r"\[|'u|\n" 
+0

どうすればいいですか? – FlyingAura

+0

2つのバックスラッシュ '\\ n' –

+0

あなたの助言によって、私はこれを行いました:wr = wr.replace(r" \ [| 'u | \\ n "、" ") 結果は変わりません。 – FlyingAura

関連する問題