Java 近似正则表达式等价
从理论上讲,正则表达式等价性是一个具有指数时空复杂度的朴素解的难题。但出于实际目的,正则表达式是否有近似的等价性度量 我正在考虑从第一个正则表达式生成随机字符串,然后对照另一个正则表达式进行检查,然后以另一种方式重复。有更优雅的支票吗 相关链接:Java 近似正则表达式等价,java,regex,Java,Regex,从理论上讲,正则表达式等价性是一个具有指数时空复杂度的朴素解的难题。但出于实际目的,正则表达式是否有近似的等价性度量 我正在考虑从第一个正则表达式生成随机字符串,然后对照另一个正则表达式进行检查,然后以另一种方式重复。有更优雅的支票吗 相关链接: PS:我想用java编写这种方法,不过欢迎使用通用的解决方案和想法。我认为您的解决方案不会完美地工作 假设您想要比较像“*1”和“*2”这样的正则表达式, 使用您的朴素算法,它将不间断地继续执行 最好使用NFA,并最小化这两个正则表达式 如果达
PS:我想用java编写这种方法,不过欢迎使用通用的解决方案和想法。我认为您的解决方案不会完美地工作 假设您想要比较像
“*1”
和“*2”
这样的正则表达式,
使用您的朴素算法,它将不间断地继续执行
最好使用NFA
,并最小化这两个正则表达式
如果达到类似的DFA
,则可以比较两个正则表达式
有关DFA
s的等效性,请参阅
我可以建议的另一种方法是:
假设将S1
和S2
作为要比较的正则表达式。
据我所知,S1
将生成一种语言L1
(由S1生成的字符串集),
而S2
将生成一种语言L2
我们可以检查两种语言的等价性
有关更多详细信息,请参阅。为什么将其标记为Java?链接自动机等价解决方案有什么问题?@jnovacho能否详细介绍链接自动机等价解决方案。这是您的链接。假设你读了它?@该死的这个你可以检查DFA的等价性。