正则批量加/删前缀需分场景:加前缀用^锚定行首插入,删前缀须匹配具体前缀(如^//),混缩进时用^\s*前缀更安全,操作前须确认正则引擎设置及缩进一致性。

能直接用正则批量加/删前缀,但必须区分场景:加前缀用 ^,删前缀用 ^前缀;混用空格/Tab 或带注释时,^\s+前缀 才安全。
加前缀:用 ^ 锚定行首插入,不是“替换整行”
想给每行开头加 [、" 或 //,别手动拖选+输入——效率低且易错位。核心是让 Sublime 把“行首”当插入点,而不是找内容替换。
-
^在正则里只匹配位置,不消耗字符,所以替换为//就是“在每行最前面塞进去”,原内容完全保留 - 打开
Ctrl + H→ 勾选右下角.*(启用正则)→ 查找框填^→ 替换框填你要加的字符(如//)→ 点Replace All - 如果只想处理某几行,先鼠标选中目标段落再开替换面板,否则全文生效
- 别用
^.*替换——那是覆盖整行,不是加前缀
删固定前缀:直接匹配前缀本身,不是靠 ^ 单独用
要删掉每行开头的 //、# 或 0. 这类明确字符,就老老实实把它们写进查找框,^ 仅作锚定,不单独存在。
- 删 JS 注释:查找
^//,替换留空;删 Markdown 序号:查找^\d+\.\s+,替换为空 - 如果前缀前有缩进(比如
//xxx),得写成^\s*//,否则匹配失败 - 注意
^//.*$是删整行,不是只删前缀——除非你真想连内容一起扔掉 - 删完发现某行开头多出空格?大概率原先是
//(空格+//),而你只匹配了^//,漏掉了前面空格
删混合缩进+前缀:必须用 ^\s* 开头,否则删不干净
真实代码里,前缀往往和缩进共存(如 Python 的 docstring 缩进后跟 #,或 JSON 配置里空格+"key")。这时候单靠 ^# 会失效。
- 安全写法是
^\s*#:先吃掉行首所有空白(空格、Tab、\r),再匹配# - 同理,删
//前可能有 2 个空格或 1 个 Tab,统一用^\s*//更稳 - 千万别写
^s*//(少反斜杠)——Sublime 不识别,显示No matches - 删完缩进错乱?说明原文件混用了 Tab 和空格,建议先执行
Convert Indentation to Spaces再操作
数组定义与枚举列表的典型处理:前缀增删常需分步+验证
处理类似 ["a", "b", "c"] 转成 enum { A, B, C }; 这类任务,不能指望一个正则全搞定。顺序和验证比写法更重要。
- 先删原始引号:查找
^"\s*|\s*"$(注意这是两个独立操作,Sublime 不支持多分支替换,得分开跑) - 再转大写:选中所有值 →
Ctrl + K,Ctrl + U(Windows/Linux)转为大写 - 最后加逗号和换行:查找
$,替换为,\n,但得确认最后一行不加——可先全加,再手动删末尾逗号 - 关键陷阱:如果原始数据含嵌套引号(如
"a\"b"),"匹配会断在转义处,必须人工校验或换用更严格的正则
真正容易被忽略的是:正则里的 ^ 和 $ 默认按换行符切分,一旦误开右下角的 \n(即 . matches newline),整个匹配逻辑就垮了——它会让 ^ 只匹配文档开头,$ 只匹配结尾,批量操作全部失效。

















