編譯器筆記5-詞法分析-正則表達式

正則表達式

語言 L={a}{a,b} * ({ε} ∪ ({ .,_ }{ a,b }{ a,b }*))

正則表達式 (Regular Expression)是一種用來描述正則語言的更緊湊的表示方法

r = a(a|b) * ( ε | (.| _)(a|b)(a|b) * )

正則表達式可以由較小的正則表達式按照特定規(guī)則遞歸地構(gòu)建胚吁。每個正則表達式 r 定義(表示)一個語言蒿褂,記為L(r)秆麸。這個語言也是根據(jù)r 的子表達式所表示的語言遞歸定義的。

  • 正則表達式的定義

ε 是一個RE 舌厨,L(ε) = {ε}
如果 a ∈∑ ,則a 是一個RE 悉默,L(a) = {a}
假設(shè) r和 和 s 都是 RE 曲梗,表示 的 語言分別是 L(r) 和L(s) ,則

r|s 是一個RE弄跌,L(r|s) = L(r)∪L(s)
rs 是一個RE 甲喝,L(rs) = L(r) L(s)
r* 是一個RE,L(r*)= (L(r)) *
(r) 是一個RE铛只,L((r)) = L(r)

運算的優(yōu)先級:*埠胖、連接糠溜、|


  1. 令 ∑ = {a, b} ,則
L(a|b) = L(a) ∪ L(b) ={a} ∪直撤 = {a, b}
L((a|b)(a|b)) = L(a|b) L(a|b)={a, b}{a, b}= { aa, ab, ba, bb }
L(a*) = (L(a)) * = {a} * = {ε, a, aa, aaa, ...}
L((a|b) * ) = (L(a|b)) * = {a, b} * = {ε, a, b, aa, ab, ba, bb, aaa, ...}
L(a|a* b) = { a, b, ab, aab, aaab, . . .}
  1. C語言無符號整數(shù)的RE

十進制整數(shù)的RE
(1|...|9)(0|...|9) * |0

八進制整數(shù)的RE
0(0|1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7) *

十六進制整數(shù)的RE
0x(0|1|...|9|a|...| f |A|…|F)(0|...|9|a|...| f |A|…|F ) *

  • 正則語言
    可以用RE定義的語言叫做
    正則語言 (regular language) 或 正則集合 (regular set)

  • RE的代數(shù)定律

RE的代數(shù)定律.png
  • 正則文法與正則表達式等價

對任何正則文法 G 非竿,存在定義同一語言的
正則表達式 r

對任何正則表達式 r ,存在生成同一語言的
正則文法 G

正則定義(Regular Definition)

正則定義.png
  • 例1

C 語言中標(biāo)識符的正則定義

digit → 0|1|2|…|9
letter_ → A|B|…|Z|a|b|…|z|_
id → letter_(letter_|digit) *
  • 例2

(整型或浮點型)無符號數(shù)的正則定義

digit → 0|1|2|…|9
digits → digit digit *
optionalFraction → .digits|ε
optionalExponent → ( E(+|-|ε)digits )|ε
number → digits optionalFraction optionalExponent

2 2.15 2.15E+3 2.15E-3 2.15E3 2E-3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谋竖,一起剝皮案震驚了整個濱河市红柱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蓖乘,老刑警劉巖锤悄,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嘉抒,居然都是意外死亡零聚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門些侍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隶症,“玉大人,你說我怎么就攤上這事岗宣⊙匮” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵狈定,是天一觀的道長颂龙。 經(jīng)常有香客問我,道長纽什,這世上最難降的妖魔是什么措嵌? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮芦缰,結(jié)果婚禮上企巢,老公的妹妹穿的比我還像新娘。我一直安慰自己让蕾,他們只是感情好浪规,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著探孝,像睡著了一般笋婿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上顿颅,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天缸濒,我揣著相機與錄音,去河邊找鬼。 笑死庇配,一個胖子當(dāng)著我的面吹牛斩跌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捞慌,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼耀鸦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了啸澡?” 一聲冷哼從身側(cè)響起揭糕,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锻霎,沒想到半個月后著角,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡旋恼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年吏口,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冰更。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡产徊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜀细,到底是詐尸還是另有隱情舟铜,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布奠衔,位于F島的核電站谆刨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏归斤。R本人自食惡果不足惜痊夭,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脏里。 院中可真熱鬧她我,春花似錦、人聲如沸迫横。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽矾踱。三九已至恨狈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間介返,已是汗流浹背拴事。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留圣蝎,地道東北人刃宵。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像徘公,于是被迫代替她去往敵國和親牲证。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容