為給定的語言構造正則表示式。
問題 1
編寫接受包含任意數量的 a 和 b 的所有字串的語言的正則表示式。
解答
正則表示式將是:
r.e. = (a + b)*
這將給出集合 L = {E, a, aa, b,bb,ab,ba, aba, bab,.....},a 和 b 的任意組合。
(a + b)* 表示 a 和 b 的任意組合,甚至包括空字串。
問題 2
編寫以 a 開頭但不包含連續 b 的語言的正則表示式。
解答
必須為以下語言構建正則表示式:L = {a, aba, aab, aba, aaa, abab, .....}
上述語言的正則表示式為:
R = {a + ab}*
問題 3
編寫接受所有字串的語言的正則表示式,其中任意數量的 a 後跟任意數量的 b,再後跟任意數量的 c。
解答
眾所周知,任意數量的 a 表示為 a*,任意數量的 b 表示為 b*,任意數量的 c 表示為 c*。根據題目描述,b 出現在 a 後面,c 出現在 b 後面。所以正則表示式可以是:
R = a* b* c*
問題 4
描述以下正則表示式表示的語言 r.e. = (b* (aaa)* b*)*
解答
可以透過找到正則表示式的含義來預測該語言。我們將首先將正則表示式拆分為:
r.e. =(任意數量的 b) (aaa)* (任意數量的 b)
L = {該語言由字串組成,其中 a 以三元組出現,對 b 的數量沒有限制}
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP