Sublime中正则查找IP需先启用.*按钮,IPv4应使用分段约束正则防越界,IPv6宜分层处理并借助外部工具验证,替换前须Find All确认范围。

正则开关没点开,IP地址永远搜不到
写\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b却零匹配?八成是.*图标没点亮。Sublime 默认关闭正则模式,Ctrl+F 打开查找框后,必须手动点击右下角(或左下角,视版本)的.*按钮——变蓝才算生效。Alt+R 可切换,但图标状态最直观,建议养成“先看再输”的习惯。
IPv4 正则要防越界,别用 \d{1,3} 直接拼
\d{1,3}会匹配 999、5678 这类非法段,导致误报。真正有效的 IPv4 段范围是 0–255,需分情况约束:
- 0–9:直接写
[0-9] - 10–99:写
[1-9][0-9] - 100–255:写
2[0-5][0-5]|1[0-9][0-9]
组合起来就是:\b(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b。太长?日常校验可先用\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b粗筛,再人工核对边界值。
IPv6 在 Sublime 里基本靠人工辅助
Sublime 的 Boost regex 引擎不支持递归或条件断言,完整 IPv6 正则(含::压缩、嵌套冒号)几乎不可行。实际做法是分层处理:
- 查基础格式:用
\b[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}:[0-9a-fA-F]{1,4}\b匹配 8 组全写形式 - 查含
::的压缩地址:单独搜::,再结合上下文判断是否为 IPv6 - 避免误伤:加字边界
\b,并确认前后不是字母或数字(如abc::123不算合法 IPv6)
更可靠的方式是复制疑似地址到 regex101.com 验证,Sublime 只负责定位候选位置。
替换前务必 Find All,否则可能改错日志或注释
写console\.log\((\b(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\b)\)这种长表达式时,一点Replace All就收不回。必须先点Find All,看右下角预览列表是否每条都落在真实 IP 上——尤其注意是否命中了字符串里的 IP(如"url": "http://192.168.1.1")或注释行。
复杂 IP 校验不是拼正则长度,而是控制作用域:点Ctrl+Shift+P → Restrict Find to Selection限定范围,比盲目全局搜索安全得多。

















