Kleene星號意思
在計算機科學和數學中,特別是在表示正規集和正則表達式的上下文中,Kleene星號(Kleene star)是一個用來表示閉包操作的符號,通常表示為小寫字母 "*"。這個操作是由美國數學家史蒂芬·科爾·克萊尼(Stephen Cole Kleene)在1951年提出的,因此得名。
Kleene星號套用於一個正規集或一個字元上,表示該元素(字元或正規集)的零次、一次、兩次或多次重複。例如:
- 如果正規集 A 代表字母 'a',那麼 A* 代表 'a' 可以出現零次、一次、兩次或多次的集合,即 {ε, a, aa, aaa, ...},其中 ε 表示空字元串。
- 如果正規集 B 代表字母 'a' 和 'b',那麼 B* 代表 'a' 或 'b' 可以出現零次、一次、兩次或多次的集合,即 {ε, a, b, aa, ab, ba, bb, aaa, ...}。
在正則表達式中,Kleene星號同樣表示字元或字元類的零次、一次、兩次或多次出現。例如,正則表達式 'a' 可以匹配任何長度為零或以上的 'a' 的字元串,而 'ab' 可以匹配以 'a' 開頭,後面跟著零個或多個 'b' 的字元串。
Kleene星號在自動機理論、編譯器設計和字元串匹配算法中有著廣泛的套用。例如,在確定型 finite automaton(DFA)和非確定型 finite automaton(NFA)中,Kleene星號可以用來表示狀態轉換函式。