我在mongoDb集合“名称”中包含以下字段:
"26.11.2018(2)"
我使用正则表达式来搜索“名称”字段中是否包含任何字符串:
String search = "11.2018(2)";
return Criteria.where("name").regex(search);
我有一个例外,正则表达式是错误的(由于“)”)。这样搜索还有其他可能性吗?
答案 0 :(得分:1)
您需要转义正则表达式中使用的值。
我现在无法对其进行测试,但是它可能会起作用:
String search = "some pattern(a)12.";
pattern = Pattern.compile(Pattern.escape(search));
return Criteria.where("name").regex(pattern);
https://mongodb.github.io/mongo-java-driver/3.4/javadoc/?com/mongodb/client/model/Filters.html