用于匹配多个正则表达式的高效算法

时间:2017-11-21 20:07:02

标签: java regex algorithm data-structures computer-science

我有一个系统,用户需要配置模式列表,然后我需要将这些模式应用于输入数据并确定哪一个匹配。

目前,使用正则表达式R1,R2,... Rn定义模式,并且我线性地迭代它们以查看哪一个匹配。

有更有效的方法吗?

我可以将它们连接成一个大型复合正则表达式,如(?<r1>R1)|(?<r2>R2)|..|(?<rn>Rn),应用它,然后解决哪个匹配的捕获组,但我怀疑它会更有效(或者它会吗?)。

还有其他算法吗?像Radix树,但正则表达式,或正则表达式模式?如果它简化了问题,我不必支持完整的正则表达式语法,但我确实需要这些模式至少具有通配符支持,并且在配置文件中可以相当容易地描述。

如果第三方实施可用,那将是最好的。

到目前为止,我找到了https://github.com/osense/retrie,但它在Erlang中并且我没有得到它:)

0 个答案:

没有答案