这是我的代码:

for (String term : segment.terms) {
            DBObject clause1 = new BasicDBObject("linkTitles", java.util.regex.Pattern.compile(term));
            or.add(clause1);
}
DBObject mongoQuery = new BasicDBObject("$and", or);
DBCursor cursor = pageLinks.find(mongoQuery);


这样的问题是,例如,如果术语是“ obama”,它将使我拥有链接标题如“ meprobamate”的对象。我想给出一个正则表达式,在任何情况下(例如" obama ", " obama." " obama, "等),整个单词只能给我“ obama”。

在所有情况下,“ obama”都可能在空格或任何标点之间,我如何在Java代码中说出mongo db regex考虑术语周围的任何标点字母或空格?

最佳答案

您可以使用\b单词边界来执行此操作。.将行更改为以下内容

DBObject clause1 = new BasicDBObject("linkTitles",
                   java.util.regex.Pattern.compile("\\b"+term+"\\b"));

10-05 23:26