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

如何用RegExp从MongoDB查询中排除含指定子串的文档?

用正则表达式筛选不包含指定子串的文档

原始文档结构:

{
   "sId": "s1",
   "source": "September Challenge 1"
},
{
   "sId": "s2",
   "source": "other string multi word"
},
{
   "sId": "s3",
   "source": "September sub string to filter Challenge"
}

需求:筛选出source字段不包含子串“ sub string to filter ”的文档,预期结果:

{
   "sId": "s1",
   "source": "September Challenge 1"
},
{
   "sId": "s2",
   "source": "other string multi word"
},

适用的正则表达式

直接使用否定前瞻断言的正则即可:

^(?!.* sub string to filter ).*$

正则含义拆解

  • ^:匹配字符串的起始位置
  • (?!.* sub string to filter ):否定前瞻,确保当前位置之后不存在任意字符(.*)加上目标子串的组合
  • .*$:匹配从当前位置到字符串结尾的所有字符,保证整个字段内容都符合条件

使用提示

如果是在数据库查询(比如MongoDB)或文本处理工具中使用,记得根据工具特性添加相应选项:

  • 若source字段内容可能包含换行,需开启让.匹配换行的选项(比如MongoDB的$options: "s",或正则的s修饰符),避免因为换行导致匹配失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 10:53:16