Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 近似正则表达式等价_Java_Regex - Fatal编程技术网

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的等价性。