这是我的代码:
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"));