巧用EditPlus 正则表达式删除文档多余空行
我们可以借助文本编辑器软件editplus、ultraedit实现。editplus、ultraedit是常见的共享软件,几乎所有软件下载网站都提供下载。由于editplus的操作更容易上手,但ultraedit更为常用,所以本文先介绍在editplus中的操作,再介绍ultraedit。
一、在editplus中删除空行
启动editplus,打开待处理的文件。需要注意,必须是纯文本文件,如果是word文档,需要先粘贴到纯文本文件中。然后,步骤如下:
1.选择“搜索”菜单的“替换”命令,出现如图所示的文本替换对话框。选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。然后,选中“全部替换范围”中的“当前文件”,表明对当前文件操作。(提示:可以同时打开多个文件进行操作,只要选中“所有打开的文件”)。
2.单击“查找内容”组合框右侧的按钮 ,出现下拉菜单,如下图所示。菜单命令中,本文用得着的命令依次是:制表符、换行、范围内的字符、行首、0或多次匹配。
下面的操作添加正则表达式,该表达式代表待查找的空行。(技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。
(1)选择“行首”,则查找内容组合框中出现字符“^”,表示待查找的字符串必须出现在文本中一行的行首,才符合条件。
(2)选择“范围内的字符”,“^”后增加一对括号“[]”,当前插入点在括号中。括号在正则表达式中表示,文本中的字符匹配括号中任意一个字符即符合查找条件。
(3)按一下空格键,添加空格符。空格符是空行的一个组成成分。
(4)选择“制表符”,添加代表制表符的“\t”。
(5)移动光标,将当前插入点移到“]”之后,然后选择“0或多次匹配”,添加了星号字符“*”。星号表示,其前面的括号“[]”内的空格符或制表符,在一行中出现0个或多个。
(6)选择“换行”,插入“\n”,表示回车符。
至此,正则表达式构造成功(如下图)。
3.替换内容组合框保持空,表示删除查找到的内容。单击“替换”按钮逐个行删除空行,或单击“全部替换”按钮删除全部空行(注意:editplus和ultraedit均存在全部替换不能一次性完全删除空行的问题,可能是程序bug,需要多按几次按钮)。
对于熟悉editplus的朋友,可以直接在find what中输入正则表达式^[ \t]*\n ,注意\t前有空格符。
二、在ultraedit中删除空行
使用ultraedit的原理一样,但是ultraedit没有提供菜单方式,所以需要手工输入正则表达式,而且ultraedit的正则表达式符号与editplus不同。
用ultraedit打开文件后,选择search菜单的replace命令。在replace对话框中,选中regular expression复选框,并在find what中输入:%[ ^t]++^p,注意^t之前有空格。该表达式字符含义与editplus的相对应。然后,单击start或replace all按钮,进行替换删除空行。