使用RegEx查找收集....是否存在

时间:2010-11-24 09:11:01

标签: regex collections lookup

是否存在某种集合(键,值),其中可以使用键上的正则表达式匹配找到值。

当然,我可以遍历所有键并进行匹配,但我想知道是否有更聪明的事情。

如果没有,任何关于如何实现这一点的想法将不胜感激。

TIA

索伦

1 个答案:

答案 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