作者(不是我)信息:
華南理工大學軟件學院本科07級(現大二)
進入大學前玩過幾個星期pascal,高考后的暑假重新學編程
程序信息:(點擊這里下載)
學習C++一年后的作品。
內含所有代碼,以及VC++工程文件。
一個程序,輸入只有匹配沒有捕獲的正則表達式,輸入被匹配的字符串,輸出字符串中符合正則表達式要求的部分。
支持括號改變優先級,[字符集]和[^字符集],少量轉義(\d等),循環(+*?),沒有捕獲
輸入輸出(紅色部分為用戶輸入的內容):
請輸入正則表達式 : /\*([^\*]|\*+[^\*/])*\*+/
請輸入所要匹配的字符串 : a//a///*\\nab**abc**//*
a//a//【/*\\nab**abc**/】/*
算法簡要:正則表達式->語法樹->ε-NFA->NFA->DFA->連通矩陣。
使用遞歸向下法判斷輸入的正則表達式的合法性并轉換為樹結構,其后轉成狀態機。
posted on 2008-11-08 06:44
陳梓瀚(vczh) 閱讀(4942)
評論(21) 編輯 收藏 引用 所屬分類:
其他