我想看看两个正则表达式之间是否有重叠。我认为最好的方法是将正则表达式转换为非确定性有限自动机,然后查看这些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>}是空的。我不知所措——谢谢你的帮助
不幸的是,这并不能完全回答最初的问题,但我最终使用greenery库解决了我的问题(计算两个正则表达式的交集):https://github.com/qntm/greenery
相关问题 更多 >
编程相关推荐