strip()不会替换所有\ n

时间:2017-08-30 14:57:14

标签: python strip

我试图删除此字符串中的所有"\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"

如何将它们全部删除?

4 个答案:

答案 0 :(得分:1)

你有' \ n'和' \ t'被''取代和' '分别。所以你可以使用

     body1 = body.replace("\n",'')
     body2 = body1.replace("\t",' ')

答案 1 :(得分:0)

使用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', ''))

答案 2 :(得分:0)

使用string.replace()而非strip

此方法会将旧char替换为新的char。在您的情况下,您想要用new line“替换”'\n' ''。如下所示

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

这将返回一个新的string,您可以将其重新分配给正文:

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', '')

答案 3 :(得分:0)

如果您只想删除重复的换行符,可以使用正则表达式re.sub

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

或者将它们全部删除:

re.sub(r'\n', '', body)