首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RegEx集合中查找MongoDB数组的匹配

在RegEx集合中查找MongoDB数组的匹配
EN

Stack Overflow用户
提问于 2014-10-17 18:17:22
回答 1查看 1K关注 0票数 9

假设我收集了这些字段:

代码语言:javascript
运行
复制
{
    "category" : "ONE",
    "data": [
        {
            "regex": "/^[0-9]{2}$/",
            "type" : "TYPE1"
        },
        {
            "regex": "/^[a-z]{3}$/",
            "type" : "TYPE2"
        }
        // etc
    ]
}

所以我的输入是"abc“,所以我想获得相应的类型(或最佳匹配,虽然最初我假设RegExes是排他的)。是否有任何可能的方法来实现这一点,以体面的表现?(这将排除对RegEx数组的每个项进行迭代)

请注意,如果可能的话,模式可以重新安排,因为该项目仍处于设计阶段。因此,替代方案将受到欢迎。

每个类别可以有大约100 - 150 RegExes.我计划有大约300个类别。但我知道类型是相互排斥的。

一个类别的真实世界例子:

代码语言:javascript
运行
复制
type1=^34[0-9]{4}$, 
type2=^54[0-9]{4}$, 
type3=^39[0-9]{4}$, 
type4=^1[5-9]{2}$, 
type5=^2[4-9]{2,3}$
EN

回答 1

Stack Overflow用户

发布于 2014-10-21 14:50:23

广度优先搜索。如果您的输入以字母开头,则可以丢弃类型1,如果它还包含一个数字,则可以丢弃独占(仅限数字或字母)类别,如果它还包含符号,则只保留少数包含所有三种类型的类型。然后,按照上述建议,为其余的类别。在某种意义上,为输入类型设置用例,并为选定数量的“regex类型”设置用例,以便向下搜索到正确的类型。

或者,您可以根据输入创建regex模型,并将其与作为字符串存在的regex模型列表进行比较,以获得类型。这样,您只需花费资源分析输入,就可以为它构建正则表达式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26431078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档