python用来删除空白行的正则表达式是_通过正则表达式删除空行的方法

我们的目标是要删除文本中的空行,可能一行也可能是多行。

所以,我的操作如下:

在此,我们匹配空行用的是

(\r\n)*

这样,就可以匹配多个空行,同时用null来替代,就可以实现删除空行。此方案是基于对\r和\n的使用。

以前在网上看到一种实现是:

\n[\s| ]*\r

匹配之后,用null替代,也可以实现删除空行,效果如下图:

两种方案都能实现相同的效果。

如果有其他的不同理解,请发表评论,大家共同进步。

我又做了以下测试,如下图:

仅用了

\n\r

就完全实现了删除所有的空行,因为在每一个空行的开头和结尾都是

\n\r

所以,删除了上一行之后,当前行还有一个\n\r,同样能够匹配上,所以,还要在做替代操作。这样,就可以删除所有的空行了。

那,如果是

\r\n,效果如何呢?

我又做了一下测试,效果如下图:

这个就不是我们想要的结果.为什么呢?

我想,我们可以这样理解,

C:\Program Files\Common Files\Relive.dll

C:\Program Files\Common Files\svchost.exe

C:\Program Files\Internet Explorer\msvcrt.bak

C:\Program Files\Internet Explorer\msvcrt.dll

C:\Program Files\Internet Explorer\msvcrt.ebk

C:\WINNT\system32\drivers\npf.sys

C:\WINNT\system32\wpcap.dll

C:\WINNT\system32\Packet.dll

C:\WINNT\system32\WanPacket.dll

C:\Documents and Settings\User name\Local Settings\Temp\wmso.exe

C:\Documents and Settings\User name\Local Settings\Temp\BCG5.tmp

这个是原始文本,其实,在我们进行文本处理的时候,我们可以这样把空行,用

\r\n(回车换行,先回车,后换行)

来替换掉.文本就是:

C:\Program Files\Common Files\Relive.dll\r\n\r\nC:\Program Files\Common Files\svchost.exe\r\n\r\nC:\Program Files\Internet Explorer\msvcrt.bak\r\nC:\Program Files\Internet Explorer\msvcrt.dll\r\n\nC:\Program Files\Internet Explorer\msvcrt.ebk\r\n\r\n\r\n\r\nC:\WINNT\system32\drivers\npf.sys\r\nC:\WINNT\system32\wpcap.dll\r\nC:\WINNT\system32\Packet.dll\r\nC:\WINNT\system32\WanPacket.dll\r\n\r\nC:\Documents and Settings\User name\Local Settings\Temp\wmso.exe\r\nC:\Documents and Settings\User name\Local Settings\Temp\BCG5.tmp\r\n\r\n\r\n

这一段文本是一个整体,没有回车,没有空隙和间隔,这是我们正在处理的文本,只不过回车换行是不可见字符,所以就不能看到,但是还是存在的.

所以,在处理的时候才会出现我们上面的情况.

有此,我们可以理解为什么

用\r\n匹配和替代后,

所有的\r\n都没有了,所以,文本,就成为了一个连接的纯字符文本了.

但是

\n\r

替换后,

中间的所有的\n\r都替代掉了,\r(\n\r……\n\r)\n,中间的部分都替代掉了。所以就剩最后的一个\r\n.

以上是我的一点理解。

PS:这里再为大家提供2款本站的正则表达式在线工具供大家参考使用:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值