Sublime Text自定义AutoFormat:如何为批量Regex替换设快捷键格式化SQL
多组正则批量替换一键执行实现方案
完全可以实现将多组正则替换操作绑定为一组批量执行,也支持绑定快捷键一键触发,不同使用场景的实现方式如下:
常用编辑器实现方案
- VS Code:安装 Replace Rules 插件,将你需要的正则替换规则按插件要求配置到
settings.json中,支持指定仅SQL类型文件生效,配置完成后可自定义绑定触发快捷键。 - Notepad++:使用自带的宏录制功能,手动按顺序完成所有正则替换操作后保存宏,即可给该宏设置自定义快捷键,后续打开SQL文件按下快捷键就能自动跑完所有替换步骤。
- JetBrains系工具(DataGrip、IDEA等):可直接使用自带的「结构搜索和替换」功能创建规则组,也可录制操作宏绑定快捷键,也可以通过 String Manipulation 插件配置批量替换规则。
无编辑器依赖实现方案
你也可以自己写轻量脚本实现,比如写Python脚本读取目标SQL文件,按顺序执行所有正则替换逻辑后输出格式化后的文件,使用时直接运行脚本即可,还可以配置右键菜单入口,点击即可直接处理选中的SQL文件。
可直接使用的SQL格式化正则规则
以下是分享的SQL清理正则规则,注释标注规则用途,第一行为匹配规则,第二行为替换值:
-- 在=、+、*、/等运算符前后添加空格 ([@\w\d'")\]])([+=*\/]|<>|<=|>=|>|<)(['"@\w\d(-\[]) $1 $2 $3 -- 移除行尾多余空格 ([-!$%^&*()_+|~=`{}\[\]:";'<>?,.\/\d\w])\h+$ $1 -- 在减号前后添加空格(不会在字母后添加,避免和连词符混淆) ([\d)\]])([-])([\w\d(\[]) $1 $2 $3 -- 字母、括号、引号后的逗号后添加空格 ([)\w\d'")])([,])([\w\d'"(@]) $1$2 $3 -- 修复添加空格后注释里的日期格式被破坏的问题 \* *(Created on: )?(\d{1,2}) *\/ *(\d{1,2}) *\/ *(\d) * $1$2/$3/$4
内容的提问来源于stack exchange,提问作者OverBakedToast
相关产品推荐
相关产品推荐

