是否存在某种类型的集合(键、值),可以使用键上的正则表达式匹配来找到值。
当然,我可以遍历所有的密钥并进行匹配,但我想知道是否有可能有更智能的东西。
如果没有,任何关于如何实现这一点的想法都将不胜感激。
提亚
Søren
发布于 2010-11-24 19:45:08
您可以使用Trie structure,并根据一个简单的正则表达式遍历它。不过,要采用现有的regex库来实现这一目的是很困难的。
a -> select child 'a'.
[a-z] -> select all children between 'a' and 'z', inclusive.
. -> select all children.
a* -> select all decendants down 'a' branches.
a? -> select current nodes, and any 'a' children.当到达模式的末尾时,返回当前选择的所有节点。如果选定节点的数量变为零,则中止并返回空集。
如果使用分支,则必须探索模式的所有可能组合。
关于高效正则表达式的一本好书是Russ Cox articles on the subject。
https://stackoverflow.com/questions/4265065
复制相似问题