将 JDO 与 Datanucleus 一起使用,我试图从我的数据库中过滤一些数据(使用 jdoql)。我想使用正则表达式进行一些复杂的搜索,我发现 JDO 提供了接受正则表达式的 String 方法“matches”,并且根据 DATANUCLEUS 文档,该方法可以接收任何类型的 ExpReg:
matches(String pattern) :返回字符串是否与传递的表达式匹配。模式参数遵循 java.lang.String.matches 方法的规则。
我能够根据一些正则表达式(如“.*”、“.”、“.*”)进行过滤,但不能使用其他表达式(如 [abcd])
有人可以确认并非所有的正则表达式语法都受支持吗?
Query q = pm.newQuery(cl, "this.name.matches(filterName)");
q.declareParameters("String filterName");
List results = (List)q.execute("Bo.*");
return pm.detachCopyAll(results);
--> 返回书,书 2
But with : q.execute("B[aoe]ok") return nothing !
谢谢