You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot MongoDB正则匹配问题求助(2.3.12.RELEASE版本)

解决Spring Boot 2.3.x中MongoDB正则匹配失效问题

问题原因

你在Java代码中使用的"\bskil"存在转义错误:

  • 在Java字符串里,\b是退格控制字符(而非正则表达式中的单词边界),导致最终传给MongoDB的正则模式并非预期的\bskil,而是包含退格符的无效模式。
  • 直接在MongoDB中使用/\bskil/是有效的,因为MongoDB的正则语法里\b直接代表单词边界,不需要额外转义。

修复方案

将Java代码中的正则字符串修改为双反斜杠转义的形式:

Criteria.where("name").regex("\\bskil", "i")

这样Java会将\\b解析为单个\b,最终传给MongoDB的正则模式就是正确的\bskil,和你在MongoDB客户端中执行的逻辑一致。

验证说明

修改后,Spring生成的$match语句会变为:

{ 
  "$match" : { 
    "name" : { 
      "$regularExpression" : { 
        "pattern" : "\\bskil", 
        "options" : "i"
      }
    }
  }
}

此时MongoDB会正确识别\b作为单词边界,实现预期的匹配效果。

内容的提问来源于stack exchange,提问作者Aslak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:02:36