源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

通过正则表达式删除空行的方法

  • 时间:2020-03-01 14:10 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:通过正则表达式删除空行的方法
我们的目标是要删除文本中的空行,可能一行也可能是多行。 所以,我的操作如下: [img]http://files.jb51.net/file_images/article/201405/2014050101343010.png[/img] 在此,我们匹配空行用的是 (\r\n)* 这样,就可以匹配多个空行,同时用null来替代,就可以实现删除空行。此方案是基于对\r和\n的使用。 以前在网上看到一种实现是: \n[\s| ]*\r 匹配之后,用null替代,也可以实现删除空行,效果如下图: [img]http://files.jb51.net/file_images/article/201405/2014050101343011.png[/img] 两种方案都能实现相同的效果。 如果有其他的不同理解,请发表评论,大家共同进步。 我又做了以下测试,如下图: [img]http://files.jb51.net/file_images/article/201405/2014050101343012.png[/img] 仅用了 \n\r 就完全实现了删除所有的空行,因为在每一个空行的开头和结尾都是 \n\r 所以,删除了上一行之后,当前行还有一个\n\r,同样能够匹配上,所以,还要在做替代操作。这样,就可以删除所有的空行了。 那,如果是 \r\n,效果如何呢? 我又做了一下测试,效果如下图: [img]http://files.jb51.net/file_images/article/201405/2014050101343013.png[/img] 这个就不是我们想要的结果.为什么呢? 我想,我们可以这样理解, 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. 以上是我的一点理解。 [b]PS:这里再为大家提供2款本站的正则表达式在线工具供大家参考使用:[/b] [b]JavaScript正则表达式在线测试工具:[/b][url=http://tools.jb51.net/regex/javascript]http://tools.jb51.net/regex/javascript[/url] [b]正则表达式在线生成工具:[/b][url=http://tools.jb51.net/regex/create_reg]http://tools.jb51.net/regex/create_reg[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部