Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 寻找解决模式匹配的有效方法_Algorithm_Data Structures - Fatal编程技术网

Algorithm 寻找解决模式匹配的有效方法

Algorithm 寻找解决模式匹配的有效方法,algorithm,data-structures,Algorithm,Data Structures,我正在为REST构建一个原型框架,该框架要求URI与特定类型相匹配。URI的不同类型如下所示: u:= /{name} /{name}/create /{name}/delete /{name}/{id} /{name}/{id}/update /{name}/{id}/delete and combinations such as, [/{name}/{id}]u 'name' belongs to a well defin

我正在为REST构建一个原型框架,该框架要求URI与特定类型相匹配。URI的不同类型如下所示:

u:= /{name}
    /{name}/create
    /{name}/delete
    /{name}/{id}
    /{name}/{id}/update
    /{name}/{id}/delete

    and combinations such as,

    [/{name}/{id}]u

    'name' belongs to a well defined set
    and 'id' is a regular expression of the type: [A-Z][a-z][0-9]+
例如:/blogs/1234/entries/567/update

如您所见,我可以将URI链接成复杂的URI

我的问题是,是否有一个好的数据结构,我可以实现/使用它来处理这个需求。目前我对自己的尝试有点模糊,不确定这是否是最好的方法


当然,我已经用蛮力技术很好地实现了这一点,但我真的希望得到一些关于处理此问题的有效方法的指导。

您的URI形成一种规则语言(假设
{name}
是一种规则语言,我想它是有限的),因此您可以创建一个有限状态自动机来解析它们

是否要将规范转换为语法分析器?@LumpN。。如果它比暴力搜索更有效率,那么是的。我也不介意将它实现为解析器。你是说id是
[a-Za-z0-9]+
类型的正则表达式吗?还有,
id的集合和
名称的集合是否相交?@Rob。。。这些名称是一个有限集。是的,ID只是字母数字字符串,不会有交集。让我看一看你的建议并试一试。非常感谢。