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

假设我们有正则表达式:

>你好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 – 我只是撇开它,但它似乎包含一个多项式时间算法的问题。

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...