Sublime多行编辑需先用正则定位再批量处理,不可直接拖选或连按Ctrl+D;必须启用正则模式(Alt+R)和跨行匹配(.\n),用正则替换删空行、注释行、重复行等,清洗前需统一缩进、删尾空格、确认UTF-8编码。

先用正则定位,再进多行编辑
Sublime 的多行编辑本身不支持正则匹配,Ctrl+Shift+L 或 Alt+F3 都不能直接“选中符合正则的文本”。必须分两步:先在查找面板(Ctrl+F)里用正则把目标行或字段高亮出来,再用多行操作批量处理。
常见错误是跳过正则直接拖选或连按 Ctrl+D,结果漏掉隐藏空格、零宽字符或跨行字段。比如清洗 Excel 粘贴过来的 CSV,表面看着对齐,实际混着 \t、\u3000(全角空格)、\u200b(零宽空格),手动选根本不可靠。
- 打开正则模式:点查找框右下角
.*图标,或按Alt+R - 查空行或伪空行:
^[\s\u3000\u200b\uFEFF\u00a0]*$(比单纯^\s*$更全) - 查含多余空格的 CSV 字段:
\s*,\s*,注意逗号前后可能有空格、制表符甚至全角空格 - 跨行匹配要启用
.\n模式(点右下角\n图标),否则.不匹配换行符
删空行/注释行/脏行必须用正则替换,别靠快捷键硬删
想删所有空行,不要用 Ctrl+Shift+K 一行行点——它只作用于当前光标所在行,且对含 \u200b 的“伪空行”完全无效。更糟的是,Ctrl+Shift+K 连按两次会误删下一行,因为第一次删完光标自动落到下一行开头。
真正可靠的做法是走正则替换流程:
- 打开
Ctrl+H,启用正则模式 - 查找:
^\s*$\n(结尾带\n才能真正删整行,避免末尾残留) - 替换框留空,点
Replace All - 删 JS 注释行:
^//.*$\n;删 Python 注释:^#.*$\n - 删不含关键词的行(反向筛选):
^(?!.*keyword).*\n
对齐字段、删固定列、加引号这类操作,别手敲空格
从 Excel 粘贴的数据,列宽错乱常因混用 \t 和空格。直接 Alt+鼠标拖选 做列编辑,遇到中文就崩——中文字在等宽字体里占 2 列宽度,但 Sublime 按字符数算列,第 10 个字符若是中文左半边,光标就卡在字中间。
安全做法是先标准化再操作:
- 全选 →
Ctrl+Shift+P→Convert Indentation to Spaces(统一转空格) - 再执行
Trim Trailing White Space(删每行尾空格) - 精准删第 12–15 列:
^.{11}(.{4}),替换为空(注意列数从 1 起算,\t算 1 个字符) - 给 CSV 字段加引号:先用正则把逗号外的空格清理掉,再查
([^,]+),替换为"$1" - 对齐逗号分隔字段:装
AlignTab插件,替换,(?=(?:[^"]*"[^"]*")*[^"]*$)为,,再Align On: ,
删重复行或只留唯一值,排序是前提
Sublime 没有原生去重功能,Find All 或 Ctrl+Shift+L 都不能识别“重复行”。必须先排序,再用正则捕获组匹配连续重复块。
两个关键正则模式必须记牢:
- 删除所有重复行(只留首次出现):
^(.+)$[\r\n](^\1$[\r\n])+,替换为空 - 只保留唯一值(每行仅一次):
^(.+)$[\r\n](^\1$[\r\n])+,替换为\1\r\n,再执行一次Edit → Sort Lines - 注意:Windows 换行符是
\r\n,macOS/Linux 是\n,正则里要对应写 - 如果数据含中文或特殊符号,排序前先确认编码为
UTF-8,否则排序乱序
最易被忽略的是“伪空行”和“末尾无换行符的空行”——前者藏零宽字符,后者 ^\s*$ 匹配不到,得靠 Ctrl+End 定位后用 Ctrl+Shift+K 收尾。清洗不是一锤子买卖,往往要跑两遍正则才干净。

















