因此要在 Java 上使用 Java driver 做 regular expression 時就簡單多了
只要自己先編譯好 Pattern 的物件,直接把 Pattern 丟到 DBObject 的 value 欄位就好了。
這裡做的範例是想要透過 regular expression 找到資料庫中 path 欄位包含指定某個字串的資料。
一般只是普通字串時,其實只要直接編譯 Pattern 即可
不過如果字串包含 / 時,就會變得複雜一些,需要把 / 置換成 \\/ 才能在 Java 裡面正常運作。
// Construct the regex pattern. String slashMatcher = Matcher.quoteReplacement("\\/"); Pattern pattern = Pattern.compile("^" + path.replaceAll("/", slashMatcher)); // Search. DBObject result = coll.findOne("path", pattern);
參考資料:
1、Forward slash in Java Regex
2、Querying for field starting with slash through Java driver
沒有留言:
張貼留言