不使用编程语言的正则表达式库,实现一个基于特定语义规则的正则表达式引擎,对用户提供基本的 match 和 search 接口。这里有两个难点,一个是语义规则如何嵌套,另一个是贪心算法在嵌套的语义规则中如何收敛。
如果你想使用既有语言库中的算法实现这个正则表达式引擎,复杂度会超过你的想象。我们应该跳出既有思维的墙,深入分析问题域,简单自洽地解决设计挑战,有效地控制软件的复杂度。
本场 Chat 的主要内容为:
- 需求
- 组合式设计简介
- 抽象设计
- 贪心算法设计
- API 设计
- 测试设计
- 内存管理设计
- 核心代码分享
注:示例代码的语言为 C++,文章后面附完整代码的链接。
阅读全文: http://gitbook.cn/gitchat/activity/5bc2ab0b54567e7a469a1018
您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。