删除单个换行符的最佳方法,但保留多个换行符

2024-09-30 16:38:33 发布

您现在位置:Python中文网/ 问答频道 /正文

从一个字符串中删除单个换行符但保留多个换行符的最python方法是什么?在

"foo\n\nbar\none\n\rtwo\rthree\n\n\nhello"

变成

"foo\n\nbar one two three\n\n\nhello"

我在考虑使用splitlines(),然后用"\n"替换空行,然后将所有内容重新连接起来,但我怀疑有更好/更简单的方法。也许用正则表达式?在


Tags: 方法字符串none内容fooonethreetwo
1条回答
网友
1楼 · 发布于 2024-09-30 16:38:33
>>> re.sub('(?<![\r\n])(\r?\n|\n?\r)(?![\r\n])', ' ', s)
'foo\n\nbar one two three\n\n\nhello'

这将查找\r?\n或{},并使用lookbehind和lookahead断言来防止两边出现换行符。在

值得一提的是,在野外有三种类型的行尾:

  1. \n在Linux、Mac OS X和其他Unice上
  2. \r\n在Windows和HTTP协议中
  3. \r在Mac OS 9及更早版本上

前两种是目前为止最常见的。如果您想将可能性限制在这三种情况下,您可以:

^{pr2}$

当然,如果你不在乎Mac行的结尾,那就去掉|\r,这是很少见的。在

相关问题 更多 >