【发布时间】:2023-04-02 00:52:01
【问题描述】:
我正在尝试使用以下代码从我的数据库中获取页面路径以某个表达式结尾的所有文档:
query.put(pagepath, new BasicDBObject(
"$regex", "/(" +expression+ ")$/"));
其中表达式被替换为“.html”、“.JSON”、“contact/”、“/”等值... 即使在https://regex101.com/ 上测试我的正则表达式时,我也没有收到任何错误但也没有结果,它可以工作并且其中一个链接至少匹配。
【问题讨论】:
-
试试
expression + "$"。此外,您需要以某种方式逃避.。所以,也许是BasicDBObject query = new BasicDBObject();,然后是query.put(pagepath, Pattern.compile(Pattern.quote(expression)+"$")); -
tanks 但它不起作用,我的查询看起来像这样:
{ "\"pagepath\"" : { "$regex" : "\\Q.html\\E$"}} -
列名应该在双引号内吗?无论如何,现在正则表达式似乎是正确的。
-
是的,那部分没问题(y)
-
该查询在 regex101.com 中有效,但在 Robomongo 中无效:
标签: regex mongodb mongodb-java mongo-java-driver