我在mongoDb集合“name”中有一个字段,其中包含:
"26.11.2018(2)"
我使用regex表达式搜索字段“name”中是否包含任何字符串:
String search = "11.2018(2)"; return Criteria.where("name").regex(search);
我遇到了异常,正则表达式是错误的(因为“)”)。是否有其他可能性进行这样的搜索?
j9per5c41#
你需要对正则表达式中使用的值进行转义。我现在无法测试,但有可能会成功:
String search = "some pattern(a)12."; pattern = Pattern.compile(Pattern.quote(search), Pattern.CASE_INSENSITIVE); return Criteria.where("name").regex(pattern);
https://mongodb.github.io/mongo-java-driver/3.4/javadoc/?com/mongodb/client/model/Filters.html
1条答案
按热度按时间j9per5c41#
你需要对正则表达式中使用的值进行转义。
我现在无法测试,但有可能会成功:
https://mongodb.github.io/mongo-java-driver/3.4/javadoc/?com/mongodb/client/model/Filters.html