【发布时间】:2014-03-25 21:46:38
【问题描述】:
给定两个正则表达式,是否有可能检测是否有任何可能的字符串匹配它们?
例如,给定正则表达式A 和.,我可以看到字符串"A" 与它们都匹配。这是一个简单的案例。
我的问题是针对更广泛的情况——给定任何两个有效的正则表达式,是否有可能明确地说是否有任何可能的字符串可以匹配这两个正则表达式?假设没有要测试的输入字符串样本集。我所拥有的只是正则表达式。我不一定需要生成匹配的字符串——我只需要确定是否有可能的字符串都匹配。
将接受任何常见正则表达式规范的讨论——.NET、Java、PERL、sed、grep 等。
【问题讨论】:
-
当您说“有可能”时,您的意思是程序员可以弄清楚,还是您的意思是算法的建设性证明?
-
不管怎样。鉴于正则表达式的广度,我什至不确定理论上是否可行。
-
使用每个 RegEx 匹配的位置和长度来确定重叠。
-
@alpha:请重新阅读帖子。我已经修改了它,所以它更清晰一点。
-
恐怕,对于 常见情况 没有办法:正则表达式可以匹配无限的字符串集 - 所以这是不确定的问题(因为交集可能无法用有限的计数算法步骤)
标签: regex