【问题标题】:MongoDb Select Query Issue Whit Regular Expression (Starts whit and Ends Whit)MongoDb 选择带有正则表达式的查询问题(开头和结尾)
【发布时间】:2017-09-24 20:36:30
【问题描述】:

我需要一个正则表达式来验证这样的字符串:

1678;1678;1678;1678 和 1;0;1;1;0;1

我尝试使用这种模式:

db.getCollection('CollectionName').find(
    {
    "magnitude": /^[1678][1678]$/,
    "flag": /^[1][1]$/
    }
)

但它不起作用,我尝试了这两种单独工作但不能同时工作的模式

db.getCollection('CollectionName').find(
    {
        "magnitude": /[1678]$/,
        "flag": /[1]$/
    }
)

db.getCollection('CollectionName').find(
    {
       "magnitude": /^[1678]/,
       "flag": /^[1]/
    }
)

我没有在 SQL 中找到任何像 * 这样的字符用于此

我正在使用 robomongo 1.0.0 进行查询

我会感谢任何帮助

提前致谢

【问题讨论】:

  • 试试/^1678$//^[01]$/

标签: regex mongodb mongodb-query


【解决方案1】:

如果您想匹配多个; 分隔的字符串,请使用捕获组。

db.getCollection('CollectionName').find(
    {
       "magnitude": /^1678(;1678)*$/,
       "flag": /^[01](;[01])*$/
    }
)

(;1678)* 匹配字符串;1678,零次或多次。

[01] 匹配 0 1

【讨论】:

  • 我不知道我们在查询中是否使用;。如果是这样,请尝试或/^1678(;1678)*$//^[01](;[01])*$/
  • 非常感谢!!它有效,您的评论的建议解决方案
猜你喜欢
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-15
相关资源
最近更新 更多