【发布时间】:2016-11-17 16:48:11
【问题描述】:
如果我有一些未知数量的正则表达式(零个或更多,希望少于几千个)搜索与给定字符串匹配的正则表达式的有效方法是什么?
我应该使用哪些类型的容器、算法和/或数据结构?如果我想找到唯一匹配的正则表达式与我想找到所有正则表达式匹配,这有什么不同吗?这与只想知道匹配的数量有什么不同吗?
让我换一种说法,假设我有一个用户输入任意字符串,并且我有一些正则表达式容器。我可以以任何我选择的方式设计容器,并以我选择的任何方式进行搜索。如果我想要一个与该集合中的用户输入匹配的所有正则表达式的列表,我应该怎么做?如果我只想知道存在多少匹配项怎么办?如果我只是想确保匹配的唯一性怎么办?
【问题讨论】:
-
将它们组合成一个表达式,根据需要“捕获”原始表达式。
-
这些(从数学上讲)是正则表达式,还是根据大多数正则表达式库,它们是随机的图灵完备匹配函数集?它们是完全匹配还是子字符串匹配?
-
@rici PCRE/ECMAScript 正则表达式和完全匹配。但我很好奇所有变体的答案。
标签: regex algorithm language-agnostic containers