我正在編寫一個編譯器。我剛開始,所以我正在創建掃描儀(或Lexer)。目前,我正在編寫一些將由我的掃描儀處理的常規定義。力圖打造他們中的一個,我的下一個問題運行:正則表達式 - 奇怪的行爲
我的測試,在RegExr,以下(非常簡單)的正則表達式:
r = /(a|ab)/
其中「R」是一個普通的定義;我的意思是,正則表達式只是(a|ab)
。
我認爲語言L(R)將是(按書Compilers: Principles, Techniques and Tools):
L(r) = {a, ab}
出人意料的是,該工具相匹配{a}
!
所以我的問題是,爲什麼會這樣?
在正則表達式中'''是一個交流發電機,即你的正則表達式將匹配'a'或'ab'。你想讓它匹配'a' _跟着by_'ab'嗎? – 2015-03-19 13:12:18
嗨@JamesThorpe,其實我不想「找到」正則表達式。我在尋找的是理解上述奇怪的行爲。 – 2015-03-19 13:14:38