Я пытаюсь удалить все "\n" в этой строке. Однако метод string.strip() не полностью очищает текст

body = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSome text\n\nHow toremovealln?\n\t\t\t\t\tbecause notworking\n\t\t\t\t\t"
body.strip("\n")

Результат

"Some text\n\nHow toremovealln?\n\t\t\t\t\tbecause notworking\n\t\t\t\t\t"

Как убрать их всех?

-1
J. Doe 30 Авг 2017 в 17:57

4 ответа

Лучший ответ

Используйте string.replace для замены '\ n' на '' (пустая строка):

body = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nSome text\n\nHow toremovealln?\n\t\t\t\t\tbecause notworking\n\t\t\t\t\t"
print(body.replace('\n', ''))
0
gsi-frank 30 Авг 2017 в 15:05

Используйте string.replace(), а не strip:

Этот метод заменит старый char новым char. В вашем случае вы хотите «заменить» new line '\n' ничем ''. Как видно ниже

body.replace('\n', '')

Это вернет новый string, который вы можете переназначить в body:

body = body.replace('\n', '')

Сейчас body это:

'Some textHow toremovealln?\t\t\t\t\tbecause notworking\t\t\t\t\t'

Так что если вы, наконец, хотите удалить tabs '\t', вы можете просто сделать еще один string.replace() для них, как вы сказали выше:

body = body.replace('\t', '')

0
Joe Iddon 30 Авг 2017 в 15:05

Если вы хотите удалить только повторяющиеся переводы строк, вы можете использовать регулярное выражение через re.sub:

re.sub(r'([\n])\1+', '', body))

Или удалить их все:

re.sub(r'\n', '', body)
0
Zach Gates 30 Авг 2017 в 15:05

У вас есть '\ n' и '\ t' для замены на '' и '' соответственно. Так что вы можете использовать

     body1 = body.replace("\n",'')
     body2 = body1.replace("\t",' ')
1
Chetan_Vasudevan 30 Авг 2017 в 15:15