【发布时间】:2012-11-26 14:36:37
【问题描述】:
快速提问,
如果a 是正则表达式,那么a* = (a*)* 是真的吗?
(a*)* 是一个有效的表达式吗?如果是,那么任何人都可以解释为什么它与a* 相同?很抱歉在这里提问,但我无法通过 Google 找到任何内容。
【问题讨论】:
-
是的,它们是相同的(理论上)。
-
我说理论上是一样的,但是regex引擎编译出来的代码可能会有所不同,在这种情况下a*比(a*)*效率更高,因为(a* )* 将引入另一个级别的回溯。
-
@nhahtdh : Lex 工具是否没有优化
(a*)*到a*?因为最小化应该有效? -
@GrijeshChauhan:我不了解 Lex 工具。普通的正则表达式引擎不会做最小化。
标签: algorithm regular-language