文本编辑器技巧之正则匹配操作
整理日志、改批量配置、从网页复制一大段带标签的文本时,手动删行、删标签很费眼。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++。
这几招不高级,但比一行行删快得多。
可用性说明:本文发布于 2019 年 4 月,距今已超过五年。文中涉及的软件版本、接口、下载地址、命令参数和操作界面可能已经发生变化,部分方案在当前环境下可能失效。请结合官方最新文档核对后再操作,生产环境使用前务必先行验证。
版权声明: 本文首发于 指尖魔法屋-文本编辑器技巧之正则匹配操作(https://blog.thinkmoon.cn/post/207-guide-regex/) 转载或引用必须申明原指尖魔法屋来源及源地址!
评论
使用 GitHub 账号登录后即可留言,支持 Markdown。