php专区

 首页 > php专区 > 正则表达式 > 通过正则表达式删除空行的方法_正则表达式

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

分享到:
【字体:
导读:
          我们的目标是要删除文本中的空行,可能一行也可能是多行...

我们的目标是要删除文本中的空行,可能一行也可能是多行。
所以,我的操作如下:
reg3.PNG
在此,我们匹配空行用的是
(rn)*
这样,就可以匹配多个空行,同时用null来替代,就可以实现删除空行。此方案是基于对r和n的使用。

以前在网上看到一种实现是:
n[s| ]*r
匹配之后,用null替代,也可以实现删除空行,效果如下图:
reg4.PNG
两种方案都能实现相同的效果。

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

我又做了以下测试,如下图:
reg5.PNG
仅用了
nr
就完全实现了删除所有的空行,因为在每一个空行的开头和结尾都是
nr
所以,删除了上一行之后,当前行还有一个nr,同样能够匹配上,所以,还要在做替代操作。这样,就可以删除所有的空行了。
那,如果是
rn,效果如何呢?
我又做了一下测试,效果如下图:
reg6.PNG
这个就不是我们想要的结果.为什么呢?
我想,我们可以这样理解,
C:Program FilesCommon FilesRelive.dll

C:Program FilesCommon Filessvchost.exe

C:Program FilesInternet Explorermsvcrt.bak
C:Program FilesInternet Explorermsvcrt.dll

C:Program FilesInternet Explorermsvcrt.ebk

C:WINNTsystem32driversnpf.sys
C:WINNTsystem32wpcap.dll
C:WINNTsystem32Packet.dll
C:WINNTsystem32WanPacket.dll

C:Documents and SettingsUser nameLocal SettingsTempwmso.exe
C:Documents and SettingsUser nameLocal SettingsTempBCG5.tmp

这个是原始文本,其实,在我们进行文本处理的时候,我们可以这样把空行,用
rn(回车换行,先回车,后换行)
来替换掉.文本就是:
C:Program FilesCommon FilesRelive.dllrnrnC:Program FilesCommon Filessvchost.exernrnC:Program FilesInternet Explorermsvcrt.bakrnC:Program FilesInternet Explorermsvcrt.dllrnnC:Program FilesInternet Explorermsvcrt.ebkrnrnrnrnC:WINNTsystem32driversnpf.sysrnC:WINNTsystem32wpcap.dllrnC:WINNTsystem32Packet.dllrnC:WINNTsystem32WanPacket.dllrnrnC:Documents and SettingsUser nameLocal SettingsTempwmso.exernC:Documents and SettingsUser nameLocal SettingsTempBCG5.tmprnrnrn

这一段文本是一个整体,没有回车,没有空隙和间隔,这是我们正在处理的文本,只不过回车换行是不可见字符,所以就不能看到,但是还是存在的.
所以,在处理的时候才会出现我们上面的情况.
有此,我们可以理解为什么
用rn匹配和替代后,
所有的rn都没有了,所以,文本,就成为了一个连接的纯字符文本了.
但是
nr
替换后,
中间的所有的nr都替代掉了,r(nr……nr)n,中间的部分都替代掉了。所以就剩最后的一个rn.

以上是我的一点理解。

分享到:
uchome工作笔记--添加微新闻功能 - UCent...
uchome工作笔记--添加微新闻功能 微新闻功能介绍: 微新闻即短小的新闻新闻,像新鲜事,微博一样. 功能有:用户通过即时窗口发布,其他用户可以在第一条微新闻下的直接进行回复评论. 在UCHOME中添加功能具体方法如下: 1、建立发布微新闻的页面: 以下是发布微新闻的发布框,可用更新个人签名的...
js正则判断非法字符限制输入_正则表达式
不能输入!@#¥%……&* 这种字符的正则表达式书写: /[@#\$%\^&\*]+/g 这个是包含以上任意一个特殊字符。取! 即可 alert(!/[@#\$%\^&\*]+/g.test(“test")) 返回 false 就代表不包含非法字符 .
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……