算法:两个正则表达式的交集

时间:2009-01-05 22:51:49

标签: c# algorithm

我想弄清楚(在运行时)两个正则表达式是否相交(即,如果它们存在一个或多个匹配正则表达式的字符串)。

算法需要非常快,因为我需要遍历数据库并检查现有值。

找到了一些关于这个但没有实现的理论?

3 个答案:

答案 0 :(得分:3)

显而易见的解决方案是将正则表达式转换为DFA,计算DFA的交集(平凡)并查看结果DFA是否可以接受(也是微不足道的)。唯一困难的部分是将正则表达式转换为DFA,这需要一些工作。

答案 1 :(得分:3)

这是使用正则表达式的偏导数的implementation in Haskell。对该帖子的评论指出克里斯多德的答案中的方法存在问题。

答案 2 :(得分:0)

如果使用通过第一个输入的输入检查第一个然后另一个?