我想知道是否有一种方法可以自动检查正则表达式的歧义性。如果存在可以通过正则表达式中的多种方式匹配的字符串,则该正则表达式被视为不明确。例如,给定一个 regex R = (ab)*(a|b)*,我们可以检测到这R是一个不明确的正则表达式,因为有两种方法可以匹配ab来自 R 的字符串。
更新
问题是如何检查正则表达式的定义是否不明确。我知道在正则表达式机制的实际实现中,总是有一种方法来匹配正则表达式,但请以学术的方式阅读和思考这个问题。
我必须维护一个自2008年以来不再更新的python包.我想当时开发人员使用的Python版本是2.3或2.4,我猜.大多数源代码都是一样的,但我找到了类似的东西:
fsa = (fsa and union(fsa, fsa2)) or fsa2
Run Code Online (Sandbox Code Playgroud)
其中fsa,fsa2,union(fsa, fsa2)都是对象.我不知道他们如何工作来返回新对象.有人可以给我一些提示吗?此外,这些运算符是否仍然允许在Python 2.7中使用?如果不是,我如何更改它以使其在Python 2.7中正常工作?
谢谢,