VS Code正则搜索仅匹配大写字母失效问题咨询
问题分析与解决办法
这大概率不是VS Code的缺陷,而是你不小心触发了不区分大小写匹配的开关——我之前在调试正则时也踩过这个一模一样的坑!
为什么你的正则会匹配小写字母?
你写的正则\{\$([A-Z_]+)\}本身是没问题的:[A-Z]在区分大小写的模式下只会匹配大写A-Z的字母,加上_,理论上只会命中{$GRAPH_BY_STATUS}这类全大写+下划线的内容。
但VS Code的搜索面板有个容易忽略的开关:搜索框右侧的Aa图标(不区分大小写匹配按钮)。如果这个按钮处于高亮激活状态,正则里的[A-Z]会被当成不区分大小写的范围,也就是同时匹配大小写字母,自然就会命中{$nombreSitio}这类包含小写字母的内容。
解决步骤
- 检查大小写匹配开关:点击搜索框右侧的
Aa图标,确保它处于未激活状态(灰色,而非蓝色高亮)。此时再执行搜索替换,正则就会严格区分大小写了。 - 强制区分大小写(可选):如果担心误触开关,可以在正则开头加上
(?-i)前缀,强制开启区分大小写模式,修改后的正则为:
这样不管全局的大小写开关状态如何,这个正则都会严格匹配大写字母和下划线。(?-i)\{\$([A-Z_]+)\}
额外验证
如果确认开关已经关闭但问题依然存在,可以尝试:
- 重启VS Code,排除临时缓存的影响
- 检查搜索面板的
.*图标是否正常开启(正则模式必须激活,你的场景下应该已经开启了)
内容的提问来源于stack exchange,提问作者Chad
相关产品推荐
相关产品推荐

