我想使用正则表达式解析器来帮助C应用程序中的一些字符串处理.我理想地寻找轻量级和开源的东西.目标平台是一个嵌入式系统,因此我们希望尽可能节省内存消耗.我在网上找到了很多选项,但是想知道是否有人可以在这个特定的环境中提出可能有帮助的其他建议.
非常感谢,
Scintilla是一个开源文本编辑器组件,使用Ozan S. Yigit的RE引擎
之所以选择它是因为它属于公共领域(所以没有任何阻碍许可)并且非常轻量级.但是它有点受限......为了它的价值,RESearch.cxx使用了一个稍微更现代的代码(转换为C++,但将它转换回C应该不复杂)和我自己做的一些小的扩展(支持\ d\s\w等).
还有一些替代方案,比如Henry Spencer的正则表达式库.
想想看,Lua正则表达式引擎(在字符串库中,gsub实现等)可能很快也很小,就像语言本身一样.它有它的怪癖和局限,但它非常实用.
侧面项目LPeg可以是RE的一个有趣的替代品,仍然轻巧但功能强大.
如果你不需要一个全功能的正则表达式实现(听起来你不这样做)那么Brian Kernighan和Rob Pike在Beautiful Code中强调的代码 可能会满足你的需求.我找到了Dobb博士的文章,我认为该文章是本书中出现的代码的起源.