是否存在某种集合(键,值),其中可以使用键上的正则表达式匹配找到值。
当然,我可以遍历所有键并进行匹配,但我想知道是否有更聪明的事情。
如果没有,任何关于如何实现这一点的想法将不胜感激。
TIA
索伦
答案 0 :(得分:0)
您可以使用Trie structure,并根据简单的正则表达式进行操作。但是,为这种目的而采用现有的正则表达式库是很困难的。
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。