2016-09-04 1 views
-1

Я очистил веб-страницу, используя красивый суп. Я пытаюсь избавиться от символа '\n', который не удаляется, несмотря на все, что я пытаюсь.Удалить n из строки python

Мои усилия до сих пор:

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

Выход:

[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

remove '' ', который существует до \ 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, вы также можете использовать представление «raw string»: r "\ n" – mpurg

+0

Вы делаете хорошую точку. Я думал о «замене» модуля 're' –

0

Вам нужно избегать обратной косой черты или использовать необработанную строку. В противном случае это символ новой строки, а не буквальный. \n

Кроме того, я не думаю, что beautifulsoup выводит строки юникода. Вы видите строковое представление в python как u'blah'

И вам не нужен список элементов для удаления. Выражение может быть

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

Как это сделать? – FlyingAura

+0

Две обратные косые черты '\\ n' –

+0

По вашему совету, я сделал это: wr = wr.replace (r" \ [| 'u | \\ n "," ") Результат остается тем же. – FlyingAura

 Смежные вопросы

  • Нет связанных вопросов^_^