第一章: 正規表示式匹配器
書中主要實現了一個簡單的正規表示式引擎,這裡我簡化為判斷字串中是否包含子串。
bool mathed(char* text, char* sub)
{
if (*sub == '\0')return true;
if (*text != 0 && *sub == *text)
return mathed(text + 1, sub + 1);
return false;
}
bool hasSubStr(char* text, char* sub)
{
do{
if (mathed(text, sub)) return true;
} while (*text++ != '\0');
return false;
}
好簡潔的程式碼, 我也為這種簡潔驚歎。
在以上程式碼中,我學到了:
- 在程式設計中一個良好的規則就是:在處理複雜的情況之前首先處理容易的情況。 細分功能,先實現簡單的,然後疊加, 如: mathe函式
- 遞迴的強大功能,其對程式碼能帶來非常大的整潔。