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

所以,我的操作如下:

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

(\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.

以上是我的一点理解。

|----------------------------------------------------------------------------------------|

版权声明  版权所有 @zhyiwww

引用请注明来源 http://www.blogjava.net/zhyiwww

|----------------------------------------------------------------------------------------|

posted on 2007-09-18 10:26 zhyiwww 阅读(25948) 评论(11)  编辑  收藏 所属分类: 正则表达式

java正则表达式空行_正则表达式删除空行相关推荐

  1. java 正则表达式效验_正则表达式(Java版整理)

    基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...

  2. excel删除无尽空白行_如何在EXCEL中隔行插入空行与批量删除空行

    在EXCEL中插入空行十分简单,但每隔一行都插入空行该如何操作呢? 批量隔行插入 1. 在需要编辑的表格右侧添加一列辅助列,然后从辅助列的第一行开始输入从1开始的一组数列. 2. 紧挨着数列下面再粘贴 ...

  3. python 正则表达式 前瞻_正则表达式 For Python

    Manarola 正则表达式有很多流派,也有很多的特性,不同的语言支持度也是不一样的.本篇文章是写Python中的正则表达式的用法的,介绍了一些可用特性,也指出了某些特性是不支持的. 本篇文章仅为学习 ...

  4. java 正则 关键字_正则表达式关键字

    在表达式中有特殊意义,需要添加 "\" 才能匹配该字符本身的字符汇总 字符 说明 ^ 匹配输入字符串的开始位置.要匹配 "^" 字符本身,请使用 "\ ...

  5. java正则表达式 位置_正则表达式(一)—位置锚定

    正则表达式 位置锚定 其实本来是准备将sed以及awk的用法放在grep后面总结的,但是考虑到如果不先讲正则表达式,sed和awk的很多东西没办法讲,因此决定将正则表达式提前到它们前面讲. 如果你已经 ...

  6. java正则表达式逗号_正则表达式只匹配逗号而不是括号?

    保罗,复活了这个问题,因为它有一个未提及的简单解决方案.(在进行正则表达式赏金任务研究时发现了您的问题.) 此外,现有解决方案还会检查逗号后是否没有括号,但这并不能保证它会嵌入括号中. 正则表达式非常 ...

  7. java 正则匹配_正则表达式真的很强大,可惜你不会写

    专注于Java领域优质技术,欢迎关注 本文旨在用最通俗的语言讲述最枯燥的基本知识 文章提纲: 元字符 重复限定符 分组 转义 条件或 区间 正则表达式在几乎所有语言中都可以使用,无论是前端的JavaS ...

  8. java 正则表达式 反向_正则表达式中的数量表示符、反向引用、零宽断言、以及java中的用法...

    在表示数量时,如果一个正则表达式X,后面没有加表示数量的符号,那就默认出现一次.如果指定需要出现n次,那就用{n},例如a{n},就是匹配a出现n次的.a{n,}表示a出现至少n次的,而这个时候就会默 ...

  9. excel删除无尽空白行_全了!Excel批量插入空行、批量删除空行、隔行插入空行技巧...

    Excel有很多批量操作技巧,如果掌握了这些技巧,工作效率会得到一定程度的提升. 下面介绍3个常用的批量操作技巧. 技巧1.批量插入空行 当选中单元格区域后,按住Shift键,将鼠标移动到所选区域的右 ...

最新文章

  1. 我平常整理了CString的一些用法,很实用,发给你共享,相信你以后遇到CString的问题都会迎刃而解:...
  2. 【NLP】授人以渔:分享我的文本分类经验总结
  3. Java程序员必须掌握的7个Java性能指标!
  4. android 如何完全卸载Android Studio
  5. win2008修改远程端口
  6. WPF 绑定StaticResource到控件的方法
  7. viturbox网卡驱动_VirtualBox Host
  8. python决策树预测模型_「数据挖掘入门系列」数据挖掘模型之分类与预测 - 决策树...
  9. 使用foobar2000将cue文件分割wav、ape、flac无损音乐
  10. Ps中的图片如何在手机上在线预览
  11. anaconda3怎么卸载干净,卸载anaconda3的方法是什么
  12. win10卸载电脑管家就蓝屏_卸载电脑管家时为什么蓝屏
  13. python中的pth文件
  14. 程序猿的情怀 语录(三)
  15. LWN:使用Rust实现OpenPGP,这就是Sequoia项目!
  16. redis常用命令手册大全 - 笔记
  17. 华清远见嵌入式开发学习的6大阶段
  18. 【ROS】—— ROS快速上手(一)
  19. 初识马尔科夫模型(Markov Model)
  20. Mythtype中丢失mplugin.dll怎么办

热门文章

  1. 看完就能知道渗透测试的技术结构
  2. pwn学习总结(五) —— 堆溢出经典题型整理
  3. 通过cookie保存并读取用户登录信息
  4. 2.1.5 编码与调制(1)
  5. python文件读写,以后就用with open语句
  6. u盘魔术师装linux,使用U盘魔术师安装Win7系统教程
  7. linux查看cpu运行速度,linux 性能篇 -- 查看cpu核数
  8. ipv6计算_移动云多款产品通过工信部IPv6支持能力技术测评
  9. Spring Boot 配置线程池使用多线程插入数据
  10. java设计模式:简单工厂模式