mongodb regex parameter
mongodb regex parameter
请参阅以下代码:
{$or: [
{titleLong: { $regex: regExp } },
{catalog: { $regex: regExp } },
{catalogNbr: { $regex: regExp } }
]}
我正在尝试查找其字段与某个正则表达式匹配的文档。例如,有一个文档。
{course: {titleLong: "Introduction to analysis of algorithms"},
{catalog: "cs3333"},
{catalogNbr: "3333"}}
当用户键入"intro algo"或"3333"或"cs3333"时,应返回文档。我尝试了/(intro|algo)/gi
,但它不起作用,因为它返回了所有具有intro
或algo
的文档。此外,g
选项似乎不起作用。我还发现了以下正则表达式:
(?=.*'bintro'b)(?=.*'balgo'b).+
但这只会发现单词与intro
完全相似的文档,而忽略了introduction
。
删除先行断言中的单词边界,以便进行部分匹配。
(?=.*intro)(?=.*algo).+
或
(?=.*intro).*algo.*
别忘了打开不区分大小写的修饰符i
还包括与"3333"
或"cs3333"
匹配的图案。
(?=.*intro).*algo.*|^(?:cs)?3333$
定义$regex
时可以使用PCRE。您可以返回以特定单词开头的所有条目,并使用(?i)
(不区分大小写的搜索)等内联选项。这里有一个例子:
{titleLong: { { $regex: '(?i).*'bintro.*' } }
或字符串中任何位置包含"intro"的entries:
{titleLong: { { $regex: '(?i).*intro.*' } }
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- Regex代码只允许一个空格
- Regex匹配除“”之外的所有字符;.js”;
- RegExp:匹配Javascript中除regex值之外的所有内容
- Javascript RegEx validator
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 制作一个regex来验证只有一个数字的字符串
- RegEx JavaScript:数字后的符号提取
- PHP和Javascript之间的Regex差异
- 链接和youtube的Javascript和regex
- 包含圆括号的JavaScript Regex模式
- 相当复杂的Regex
- 如何在ng regex中包含qutoes+双引号
- 在javascript中,I'我很难弄清楚如何让regex只替换捕获而不替换匹配
- Regex提取URL返回数组的一部分;未定义”;
- 将po-box javascript正则表达式转换为c#regex
- Datatables查询url字符串:需要regex来修复url解析
- 要替换的Javascript Regex无法按预期工作
- 如果匹配项在特定的html标记中,则跳过regex匹配
- mongodb regex parameter