Regex 正则表达式比较

Regex 正则表达式比较,regex,comparison,Regex,Comparison,是否有任何解决方案可以比较两个正则表达式的包容、部分重叠、不相交,即我想知道如何比较两个正则表达式。其次,如果正则表达式1被正则表达式2包含,我可以组合两个正则表达式吗 假设你有两个表达式A和B,想看看A是否匹配B的子集 您需要计算B的最小化DFA,然后将这两个表达式组合成a和B的并集,然后计算新表达式的最小化DFA。如果这两个DFA相等,则A匹配B的子集 本质上,如果不经过构造最小化自动机的过程,就无法正确地检查这一点。然而,它将为这个问题提供一个可验证的真实答案 组合这两个表达式可以通过创建

是否有任何解决方案可以比较两个正则表达式的包容、部分重叠、不相交,即我想知道如何比较两个正则表达式。其次,如果正则表达式1被正则表达式2包含,我可以组合两个正则表达式吗

假设你有两个表达式A和B,想看看A是否匹配B的子集

您需要计算B的最小化DFA,然后将这两个表达式组合成a和B的并集,然后计算新表达式的最小化DFA。如果这两个DFA相等,则A匹配B的子集

本质上,如果不经过构造最小化自动机的过程,就无法正确地检查这一点。然而,它将为这个问题提供一个可验证的真实答案

组合这两个表达式可以通过创建一个新表达式(如
(a)|(B)
)来完成,如果引擎支持的话,可以用parantise替换非捕获变体

如果你决定一路做算法,我已经写了一系列关于这个过程的文章:


要比较两个自动机,只需检查状态和转换是否相同。它们应该完全相等。

有没有有效的算法来构造和比较两个DFA。有几种!事实上,我已经写了一系列关于这个问题的文章:构建:最小化: