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

Regular Expression to find string starts with letter and ends with slash /

我有一个包含 1000 条记录的集合,其中有一个字符串列。

我正在使用 Jongo API 查询 mongodb。

我需要找到列字符串以字母 "AB" 开头并以斜线“/”结尾的匹配记录“

需要有关查询的帮助以查询到 select 相同。

谢谢。

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

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

^AB.*\/$
^  - matches the start of the string
AB - matches the string 'AB' exactly
.* - matches any character ('.') any number of times ('*')
\/ - matches the literal character '/' (backslash is the escape character)
$  - matches the end of the string

如果您刚刚开始使用正则表达式,我强烈推荐 Regex 101 网站,这是一个很棒的沙箱,可以在其中测试正则表达式并解释表达式的每个步骤,从而使调试变得更加简单。

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

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));

你可以试试这个。

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;
        }