我實在不明白在這裏表達的差異。任何非空字符串 - 正則語言
有在所有任何字符串,然後有:任何非空字符串
字母Σ:
{a, b, c}
我明白,(a+b+c)*
可以是a, b, c
但什麼區別只是另一個(a+b+c)
使?
這些答案都採取了一些演講幻燈片。
有人可以請解釋爲什麼我們需要另一個(a+b+c)
?
謝謝!
我實在不明白在這裏表達的差異。任何非空字符串 - 正則語言
有在所有任何字符串,然後有:任何非空字符串
字母Σ:
{a, b, c}
我明白,(a+b+c)*
可以是a, b, c
但什麼區別只是另一個(a+b+c)
使?
這些答案都採取了一些演講幻燈片。
有人可以請解釋爲什麼我們需要另一個(a+b+c)
?
謝謝!
的字符串可以爲空,如果它僅僅是「」。這是一個字符串的有效值,因此它將成爲「任何字符串」類別的一部分。
據我所知,第一個,但它是第二個我不太明白。爲什麼我們使用兩個:(a + b + c) - 我們不能只用一個嗎? – PaulEx10 2013-05-06 14:00:00
記住,星號表示零個或多個。所以第一個例子可能會導致一個空白字符串。但是,第二個字符串必須以a,b或c之一開始,然後可能爲零個或多個其他字符,因此它至少有一個字符長度。
當應用Kleen的星clouser任何RE,就會產生在(a+b+c)*
的情況下空串(長度= 0),所以當*
被0代替,其結果將是空字符串。爲了擺脫掉,這裏空字符串我們把(CONCAT)(a+b+c)
(a+b+c)*
之前,因此由(a+b+c)*
生產的每串是由兩種a or b or c
前綴,我們確保一個空字符串不能由該RE產生這樣。
你知道「空字符串」是什麼意思嗎? – 2013-05-06 13:58:14
我這樣做,但我仍然不明白爲什麼我們需要兩個(A + B + C) – PaulEx10 2013-05-06 13:59:25