regex Spring数据MongoDB检查字段是否包含文本

8qgya5xd  于 2023-01-18  发布在  Spring
关注(0)|答案(1)|浏览(151)

我在mongoDb集合“name”中有一个字段,其中包含:

"26.11.2018(2)"

我使用regex表达式搜索字段“name”中是否包含任何字符串:

String search = "11.2018(2)";
return Criteria.where("name").regex(search);

我遇到了异常,正则表达式是错误的(因为“)”)。是否有其他可能性进行这样的搜索?

j9per5c4

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

相关问题