我正在尝试为MongoDB创建JSON查询字符串,为了支持正则表达式,我需要创建具有不带引号的值的JSON字符串。如何在java中完成此任务,
这是我想要做的例子,
JSONObject obj= new JSONObject();
String title = "gro";
obj.put("title", "/.*" + title + ".*/");
结果是
{"title ":"/.*gro.*/"}
上面不再被MongoDB视为正则表达式。我想要的是,
{"title ":/.*gro.*/}
因此MongoDB将其视为正则表达式。有没有办法在java中实现这一点?
答案 0 :(得分:1)
/
分隔的正则表达式语法是JavaScript构造。在Java中,您必须使用java.util.regex.Pattern
,如下所示:
BasicDBObject query = new BasicDBObject("title", Pattern.compile(".*gro.*"));
答案 1 :(得分:0)
试试这个,
JSONObject obj= new JSONObject();
String title = "gro";
String startExpr = "/.*";
String endExpr = ".*/";
obj.put("title", startExpr + title + endExpr );