文本编辑器技巧之正则匹配操作

整理日志、改批量配置、从网页复制一大段带标签的文本时,手动删行、删标签很费眼。VS Code、Sublime、Notepad++ 等都支持查找替换里开正则(VS Code 点 .* 图标)。下面是我常用、也真的省时间的几条。

正则删除关键字所在行

场景:日志里筛掉含某个人名、某错误码的行;或从导出文件里去掉注释行。

查找:

^.*大师兄.*$

替换为:(空)

说明:^ 行首,.* 任意字符,大师兄 关键字,$ 行尾。整行匹配后替换成空,相当于删掉该行。

如果不留空行:

查找:

^.*大师兄.*\r?\n

替换为:(空)

多匹配行尾的 \r?\n,Windows(\r\n)和 Unix(\n)换行都能吃掉,避免删完剩一堆空白行。若编辑器支持多行模式,以实际预览为准。

正则删除HTML标签

从网页复制的说明文字常夹带 <div><span> 之类。Ctrl + H 打开替换,勾选正则,查找 <[^>]+>,替换为空。

[^>]+ 表示「除 > 外的一个或多个字符」,能匹配大多数简单标签。嵌套很复杂或带 > 的异常 HTML 可能删不干净,那种更适合用解析器或专用工具;日常粘帖清理够用。

正则替换换行

把多行合并成一行(例如拼 SQL、拼 JSON 一行测试):Ctrl + H 正则查找 \n,替换为空格或逗号等你想要的。

反过来,在某个分隔符处断行:查找 , 替换为 ,\n(按需要改分隔符)。

注意:全文替换 \n 会把所有换行去掉,操作前最好先备份或撤销一步。大文件可以先选中一段再替换。

使用习惯

  • 替换前用「查找全部」或预览看命中数量,避免误伤。
  • 不同编辑器正则方言略有差别(如是否默认多行),以当前软件文档为准。当时环境主要是 VS Code 和 Notepad++。

这几招不高级,但比一行行删快得多。

版权声明: 本文首发于 指尖魔法屋-文本编辑器技巧之正则匹配操作https://blog.thinkmoon.cn/post/207-guide-regex/) 转载或引用必须申明原指尖魔法屋来源及源地址!