正则表达式查找字符串以字母开头,以斜杠结尾/

时间:2016-08-24 11:56:19

标签: regex mongodb jongo

我有一个有1000条记录的集合有一个字符串列。

我正在使用Jongo API查询mongodb。

我需要找到匹配的记录,其中列字符串以字母“AB”开头,以斜杠“/”结尾

需要查询查询以帮助选择相同的内容。

感谢。

3 个答案:

答案 0 :(得分:6)

我将假设您知道如何使用Jongo API中的正则表达式进行查询,并且只是在寻找必要的正则表达式吗?

如果是这样,这个正则表达式将找到任何以'AB'开头的字符串(区分大小写),后跟任意数量的其他字符,然后以正斜杠('/')结束:

1e-9

如果您刚开始使用正则表达式,我强烈推荐使用Regex 101网站,这是一个非常棒的沙箱来测试正则表达式,并解释了表达式的每一步,使调试变得更加简单。

答案 1 :(得分:0)

我找到了解决方案,以下工作正常。

db.getCollection('employees').find({employeeName:{$regex: '^Raju.*\\/$'}})
db.getCollection('employees').find({employeeName:{$regex: '\/$'}})
getCollection().find("{employeeName:{$regex: 
              '^Raju.*\\\\/$'}}").as(Employee.class);
getCollection().find("{employeeName:{$regex: '\\/$'}}").as(Employee.class);
getCollection().find("{employeeName:#}", 
               Pattern.compile("\\/$")).as(Employee.class);
getCollection().find("{"Raju": {$regex: #}}", "\\/$").as(Employee.class);

map = new HashMap<>();
map.put("employeeName", Pattern.compile("\\/$"));
coll = getCollection().getDBCollection().find(new BasicDBObject(map));

答案 2 :(得分:0)

你可以试试这个。

public List<Product> searchProducts(String keyword) {
            MongoCursor<Product> cursor = collection.find("{name:#}", Pattern.compile(keyword + ".*")).as(Product.class);
            List<Product> products = new ArrayList<Product>();
            while (cursor.hasNext()) {
                Product product = cursor.next();
                products.add(product);
            }
            return products;
        }