Algorithm 寻找解决模式匹配的有效方法
我正在为REST构建一个原型框架,该框架要求URI与特定类型相匹配。URI的不同类型如下所示: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
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只是字母数字字符串,不会有交集。让我看一看你的建议并试一试。非常感谢。