快速问题, if a
是一个正则表达式然后它是真的a* = (a*)*
?与(a *)*相同*
是(a*)*
有效表达式?如果是这样,那么任何人都可以解释为什么它与a*
相同?我在此表示歉意,但我无法通过Google找到任何内容。
快速问题, if a
是一个正则表达式然后它是真的a* = (a*)*
?与(a *)*相同*
是(a*)*
有效表达式?如果是这样,那么任何人都可以解释为什么它与a*
相同?我在此表示歉意,但我无法通过Google找到任何内容。
是,a*=(a*)*
是相同的。两者都会生成相同的语言,即包含null的任何数字a。
L(a*) = {^, a, aa, aa...... } = L ((a*)*)
是(a*)*
有效的表达?
是的,这个表达式叫做
REGULAR-EXPRESSION
(我看到你错过了标签)。任何正则语言(RL)都可以用正则表达式(RE)表示。代表RL的字母表方式。
为什么它是一样的?
*
表示重复任意次数(包括0
次)。
a*
表示0a,1a,2a或任何数量的a。(a *)*表示在任何时间(包括0次)中设置的所有字符串
a*
的重复。
因为L(a*)
意味着所有字符串都包含使用。它的每套晚餐都由a的字符串组成。和L((a*)*)
是一样的。
+1简单明了的解释 –
是的,它们是相同的(理论上)。 – nhahtdh
我说它在理论上是一样的,但是由正则表达式引擎编译的代码可能在它们之间不同,并且a *在这种情况下比(a *)*更有效,因为(a *)*会引入另一个级别回溯。 – nhahtdh
@nhahtdh:Lex工具是否未将'(a *)*'优化为'a *'?因为最小化应该工作? –