我遇到的实际场景是,提交Word格式的软件源代码时,因为代码中本身就存在空行(包括纯空行,和只有空格、Tab的行),所以复制到Word中也有空行,但是提交时要求源代码文档中不含空行,所以我调研了一下相关的解决方案,分享一下。
我拿一些我的开源代码作为示例写了教程文档。可以看到文档中有纯空行(编辑标记在最前面,红色框),也有带空格的(编辑标记在中间,橙色框):

示例文档下载地址(其实不下也行反正就是这么个意思):
makefile
我用夸克网盘给你分享了「示例文档-备份.docx」,点击链接或复制整段内容,打开「夸克APP」即可获取。
/~17ba3aIcAq~:/
链接:https://pan.quark.cn/s/8b5136d2ea10
提取码:uTfB
本文会先介绍Word文档中的段落标记和手动换行符(Enter和Shift+Enter形成的不同行),然后按步骤介绍删除空行的方法。
1. Word文档中不同的行
Word文档中有两种方法可以换行:
-
回车(Enter)可以新建一个段落,特殊字符代码(在查找替换的时候用)为
^p,段落标记显示效果为:
-
软回车(Shift + Enter)只会换行,换行前后的内容属于同一个段落。特殊字符代码为
^l,手动换行符显示效果为:
(如果从网页中直接复制文本,比较容易出现很多多余的软回车)
如果你的Word中没有显示编辑标记,在开始菜单中点击这个符号显示(再点一次就能隐藏了):

2. 删除空行
建议操作前先备份文档,因为替换操作无法撤回。
Ctrl + H打开"查找与替换"弹窗
第一步: 查找^l,替换^p,将所有软回车替换成回车(如果你的文档中没有软回车,也不需要这一步):

替换后就全都是换段了:

第二步: 查找^w^p,替换^p,删除只有空白字符(空格、回车等)的段落里的空白字符:

替换后的效果:

第三步: 查找^p^p,替换^p,全部替换多次,直到替换完成。每一次都会删除连续两次换段的情况,当文档中有连续空行时就需要替换多次才能删完空行:

第一次替换完的效果:

第3次替换完的效果:

最后这个空行是不会自动删的,但是反正只有一行所以可以手动删除。可以看到除了这个最后一行之外的空行(包括只有空白字符的行)都已经删完了。