快速問題, 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 *'?因爲最小化應該工作? –