sublime正则需启用.*图标、正确设置where路径并保存文件,否则替换失效;删空行应避免s匹配换行符,改用[ ];跨文件替换须加载项目、指定路径、保存文件;捕获组$1生效需启用正则模式、含括号表达式且where不为空。

Sublime 的正则表达式不是“输完就跑”,.* 图标没点蓝,所有 d+、^、$ 全部失效——这是 90% 查找失败的根源。
为什么 ^s*$ 删空行会破坏 Git 提交?
因为 s 在 Sublime 中匹配换行符
和回车
,用它删空行可能把文件末尾的换行也吞掉,导致格式错乱甚至 Git 报 warning: CRLF will be replaced by LF。
- 正确写法是
^[ ]*$:只匹配空格和 Tab,不碰换行符 - 若需清理含全角空格(
u3000)或零宽空格(u200B)的“伪空行”,得显式加 Unicode 范围:^[ u3000 u200B]*$ - 末尾空行不会被
^[ ]*$匹配到,需手动补删或额外加一行$单独处理
跨文件替换总不生效?检查三把锁
Sublime 全局替换(Ctrl+Shift+F)是“三锁机制”:缺一不可,否则 Replace All 点了等于白点。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
-
项目未加载:侧边栏没文件树、状态栏左下角无路径 → 必须
File → Open Folder…加载根目录 -
Where填错:留空或填*会让node_modules、dist全被卷入;安全写法是src/**/*.js或!node_modules, !dist -
文件没保存:Sublime 不自动保存修改,必须
File → Save All(或Ctrl+K松开 →Ctrl+B)
$1 替换后变成字面量?捕获组失效的硬条件
Sublime 只认语法,不解析语义。只要出现 $1 原样输出,基本逃不开这三个漏掉的环节:
-
.*图标没点蓝:正则模式未启用,所有括号都当字面量处理 - 查找框里没写带括号的捕获组:比如想提
id=123中的数字,必须写id=(d+),不能只写id=d+ - 跨文件替换时
Where路径留空:匹配范围失控,$1可能引用到非预期内容,尤其在多文件同名变量场景下极易错位
处理配置文件时最容易被忽略的边界点
配置文件(如 Preferences.sublime-settings、.json、.ini)常混排注释、缩进、字符串和嵌套结构,正则在这里极易失焦:
- 匹配 JSON 键值对时,
"(w+)":s*"([^"]*)"无法处理转义引号("name": "He said "hi""),得改用"(w+)":s*"(?:[^"\]|\.)*"(但 Sublime 不支持(?:)非捕获组,实际只能分步) - 处理
.ini注释行(;或#开头)时,^[s;#].*会误吞空行前的注释缩进,应拆成两步:先删纯空行,再删注释行 - 所有涉及跨行的配置块(如多行 YAML 注释、JSON 多行字符串),必须开启
(?s)模式,但[sS]是更兼容的写法;不过一旦启用,.*?就容易越界匹配到下一个块——务必先Find All预览整块匹配范围










