1

我正在尝试为 MongoDB 创建 JSON 查询字符串,为了支持正则表达式,我需要创建具有不带引号的值的 JSON 字符串。如何在java中实现这一点,

这是我正在尝试做的示例,

  JSONObject obj= new JSONObject();
  String title = "gro";
  obj.put("title", "/.*" + title + ".*/");

结果是

   {"title ":"/.*gro.*/"}

以上不再被 MongoDB 视为正则表达式。我想要的是,

   {"title ":/.*gro.*/}

这样 MongoDB 将其视为正则表达式。有没有办法在java中完成这个?

4

2 回答 2

1

定界正/则表达式语法是一种 JavaScript 构造。在Java中,你必须java.util.regex.Pattern像这样使用:

BasicDBObject query = new BasicDBObject("title", Pattern.compile(".*gro.*"));
于 2013-03-08T15:30:29.570 回答
0

尝试这个,

  JSONObject obj= new JSONObject();
  String title = "gro";
  String startExpr = "/.*";
  String endExpr = ".*/";

  obj.put("title", startExpr  + title + endExpr );
于 2013-03-08T15:47:49.343 回答