Sublime Text 查找替换默认不启用正则,需点击 .* 按钮(或按 Alt+R)开启;反向引用用 \1 而非 $1,且依赖 Find 中的捕获组;自增数字需配合 Insert Num 插件;中文/emoji 需显式 Unicode 范围并确保 UTF-8 编码及 Unicode 正则支持。

Sublime 中 Find 和 Replace 的正则模式必须手动开启
默认情况下 Sublime Text 的查找替换是普通字符串匹配,不启用正则。如果写了一堆 ^、\d+ 却没反应,大概率是忘了点那个 .* 按钮(或按 Alt+R 切换)。这个按钮在查找面板右下角,未激活时呈灰色,点击后变蓝并显示「Regex」字样——这是所有后续操作的前提。
\1、\2 这类反向引用只在 Replace 字段里生效,且依赖 Find 中的捕获组
比如想把每行开头的数字提取出来,后面补上固定前缀生成 ID:
Find: ^(\d+)Replace: ID_\1
这里 (\d+) 是一个捕获组,\1 才能取到它。如果写成 ^(\d+).* 却在 Replace 里只用 \1,也能工作;但若漏掉括号(如 ^\d+),\1 就会原样输出,不会被替换为数字。
常见错误:
- 在 Replace 里误写成
$1(这是 JavaScript/Shell 风格,Sublime 只认\1) - Find 中用了非捕获组
(?:...),却指望\1能取到内容 - 多个括号嵌套时数错序号,比如
(a(b)c)中,\1是整个abc,\2是b
批量生成带递增数字的模拟数据,用 Ctrl+Shift+P 调出命令面板执行 Insert Num...
纯靠正则无法生成自增数字(比如第1行填 user_1,第2行填 user_2),但 Sublime 自带插件 Insert Num... 可以。操作路径:Ctrl+Shift+P → 输入 Insert Num → 回车 → 填写起始值、步长、格式(如 user_{0})。注意:该命令只对当前选中行生效,没选中时会对光标所在行执行一次;要批量处理,先用正则选中所有目标行(例如 Ctrl+D 多次或 Ctrl+Cmd+G 全局匹配),再运行命令。
典型场景:
- 生成 100 行 JSON 对象:
{"id": 1, "name": "user_1"}→ 先用正则插入占位符,再用Insert Num替换数字部分 - 避免手敲重复结构,比如每行开头加
row_+ 序号,直接选中所有行首位置(正则^→Replace All留空 → 再运行Insert Num)
中文、emoji 或特殊符号参与正则时,确保文件编码是 UTF-8,且正则中不用 \w 匹配汉字
\w 在 Sublime 中默认只匹配 ASCII 字母、数字和下划线(即等价于 [a-zA-Z0-9_]),不包含汉字、全角标点或 emoji。如果想匹配中文姓名字段,得显式写 [\u4e00-\u9fa5] 或更宽松的 [\u4e00-\u9fff];匹配 emoji 可用 Unicode 范围如 [\u{1F600}-\u{1F64F}](需开启 Sublime 的 Unicode 正则支持,即勾选 Regex 按钮旁的 U 标志,或在 Find 字段开头加 (?u))。
容易踩的坑:
- 文件另存为时选了
GBK编码,导致中文在正则中变成乱码,匹配失败 - 用
\w+试图提取张三,结果啥也没选中 - emoji 被拆成多个码点,单个
.可能只匹配一半,建议用\X(匹配 Unicode 字素簇,Sublime 支持)
实际批量构造模拟数据时,正则负责“定位”和“结构替换”,自增逻辑靠 Insert Num,特殊字符靠显式 Unicode 范围——三者配合比硬写 Python 脚本快得多,但前提是别让编码和反向引用这些细节卡住节奏。

















