EditPlus怎么用正则批量删除空行?
EditPlus使用正则表达式可批量删除空白行。针对半角空格和制表符造成的普通空行,用^[t]*\n替换。处理含全角空格或不间断空格的伪空行,需用^[\t\u3000\xA0]*\n。跨平台文件建议先统一换行符。删除注释行时需人工复查以防误删。
从网页复制粘贴日志、代码或配置文件时,最让人头疼的往往不是内容本身,而是随之而来的各种空白行。这些空白行可能只包含几个半角空格、肉眼难以察觉的制表符,或来自老旧网页编辑器的全角空格。平时看似无害,但一旦用于JSON格式校验、Ansible模板执行或grep管道处理,就会成为破坏逻辑、导致错误的元凶。

想要一次性清理这些“隐形垃圾”,EditPlus配合正则表达式是高效选择。不过,针对不同来源的文本,清理策略需要稍作调整。
用正则替换删除所有空白行
核心操作很简单:按下 Ctrl + H 打开替换对话框,按以下步骤执行。
在“查找内容”框中输入正则表达式:^[ t]*n。特别注意:^后面紧跟一个半角空格,然后依次是代表制表符的 t 和代表换行符的 n,中间的括号不能省略。
“替换为”框保持完全空白,不填任何字符。
关键是要勾选“正则表达式”和“当前文档”选项,然后点击“全部替换”。通常第一次执行后,连续的多个空行被压缩为单个空行;再次点击“全部替换”,所有空白行将被彻底清除。
这个方法对普通半角空格和Tab键造成的空行效果显著,但局限在于无法处理包含全角空格或行尾为Windows换行符(rn)的“伪空行”。因此,如果处理来自IE等旧版浏览器复制的文本,或在Windows与Linux间反复传递的日志,需先执行:菜单栏选择“文档”→“转换”→“转换为Unix格式”,将换行符统一为LF(即n),再执行上述替换操作。
处理含全角空格或不可见字符的伪空行
遇到更“顽固”的空行时,需要升级正则表达式。以下提供两个常用方法。
方法一:一步到位的兼容正则
在“查找内容”中输入更全面的表达式:^[ tu3000xA0]*n。其中u3000代表中文全角空格,xA0代表不间断空格(网页中常见)。同样勾选正则表达式并点击替换。这个写法能覆盖绝大多数由“隐形字符”构成的空行,但对行尾残留的r(回车符)仍无效。
方法二:推荐的两步清除法(尤其适合跨平台文件)
第一步,处理换行符:查找 rn,替换为 n,将Windows换行符统一为Unix格式。
第二步,使用上述 ^[ tu3000xA0]*n 表达式进行替换。两步完成后,几乎所有类型的空白行都能被清除。
防止误删带注释的“假空行”
有时情况更复杂。例如,在配置文件(如Nginx的.conf或软件的.ini文件)中,常见以 # 或 ; 开头、后面只有空格和换行符的注释行。这些行“看似”空行,实际是有语义的注释。
如果直接使用前面“格杀勿论”的正则表达式,这些注释行也会被删除,可能引发配置错误。更安全的做法是使用负向先行断言,如正则:^(![#;]).*[ tu3000xA0]*n,其含义是匹配“行首不是#或;,且整行只有空白字符和换行符”的行。
然而,EditPlus(至少5.0及更早版本)的内核不支持 (!) 这类高级语法。因此,退而求其次的最佳实践是:批量替换后,人工复查。
操作流程:先用 ^[ tu3000xA0]*n 进行批量删除。完成后,立刻按下 Ctrl + F,分别搜索 ^# 和 ^;(确保勾选正则表达式),快速浏览确认是否有注释符号开头的行被误删。一旦发现误删,立即按 Ctrl + Z 撤销上一步操作,然后考虑更谨慎的手动处理或改用其他支持高级正则的编辑器。
总之,正则表达式虽然强大,但对待配置文件这类“牵一发而动全身”的文本,多一分小心总没有错。批量操作的效率,不应以牺牲准确性为代价。
