使用FAdo查看正则表达式的交集是否为空

2024-05-23 15:51:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想看看两个正则表达式之间是否有重叠。我认为最好的方法是将正则表达式转换为非确定性有限自动机,然后查看这些NFA的交集是否为空

我在这里看到这个FAdo Python包:https://pypi.org/project/FAdo/

和文件:https://www.dcc.fc.up.pt/~rvr/FAdo.pdf

以下是我的功能:

from FAdo import reex

def no_overlap(a, b):
    n1 = reex.str2regexp(a).toNFA()
    n2 = reex.str2regexp(b).toNFA()
    c = n1.conjunction(n2)
    return _______

assert no_overlap('(a)*', '(b)*')
<>但是我不知道在空白处放什么来判断^ {CD1>}是空的。我不知所措——谢谢你的帮助


Tags: 方法nohttpsorgpypi自动机确定性overlap