正则表达式 – 是否存在可以确定一种常规语言是否匹配任何其他常规语言匹配的输入的算法?

前端之家收集整理的这篇文章主要介绍了正则表达式 – 是否存在可以确定一种常规语言是否匹配任何其他常规语言匹配的输入的算法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我们有正则表达式:

>你好W. * rld
>你好世界
>。*世界
>。* W. *

我想最小化匹配任意输入所需的正则表达式数量

要做到这一点,我需要找到一个正则表达式是否匹配任何与另一个表达式匹配的输入。那可能吗?

Billy3

任何正则表达式都可以链接到DFA – 您可以最小化DFA,并且由于最小表单是唯一的,因此您可以决定两个表达式是否相等。 Dani Cricco指出了Hopcroft O(n log n)算法。还有另一个改进的算法,由Hopcroft和Craft来测试O(n)中两个DFA的等价性。

对于这个问题的一个很好的调查和一个有趣的方法,我推荐了来自arXiv的文章Testing the Equivalence of Regular Languages

稍后编辑:如果你对正则表达式有兴趣包含而不是等价性,我遇到了一篇可能感兴趣的论文:Inclusion Problem for Regular Expressions – 我只是撇开它,但它似乎包含一个多项式时间算法的问题。

原文链接:https://www.f2er.com/regex/357394.html

猜你在找的正则表达式相关文章