0
我正在龍書中使用算法實現正則表達式分析器。現在我可以生成一個DTran表並解析一些基本的正則表達式,如:(a|b)*abb
。如何在實現正則表達式分析器時實現點(。)符號?
但是在執行.
符號時遇到了問題,它符合任何字符。在龍書中沒有關於它的文字,是否有關於實現它的一些例子或文章?
我正在龍書中使用算法實現正則表達式分析器。現在我可以生成一個DTran表並解析一些基本的正則表達式,如:(a|b)*abb
。如何在實現正則表達式分析器時實現點(。)符號?
但是在執行.
符號時遇到了問題,它符合任何字符。在龍書中沒有關於它的文字,是否有關於實現它的一些例子或文章?
解決它自己,這是它的樂趣。下面的答案並不多,但是。
它與其他模式匹配非常類似,比如*,並且記住在同一文本上可能會出現多個匹配;這就是爲什麼它可能被遺漏(當語法很豐富時,Dtran或狀態機會變得很難);加上它非常相似,但接受一個字符。你可能不得不轉換到NFA(非確定型有限自動機)以保持簡單。
很明顯,我沒有通過龍書,但在大學,「計算理論」報道。我畫了很多狀態機。