9

我想使用正则表达式解析器来帮助 C 应用程序中的一些字符串处理。理想情况下,我正在寻找轻量级和开源的东西。目标平台是嵌入式系统,因此我们希望尽可能多地节省内存消耗。我在网上找到了许多选项,但想知道是否有人可以提出可能在这种特定情况下有所帮助的其他建议。

非常感谢,

4

3 回答 3

7

Scintilla是一个开源文本编辑器组件,使用Ozan S. Yigit 的 RE 引擎

之所以选择它,是因为它属于公共领域(因此没有妨碍许可)并且非常轻量级。但它有点有限......对于它的价值,RESearch.cxx使用了稍微更现代的代码(转换为 C++,但将其转换回 C 应该并不复杂),并带有一些我自己制作的小扩展(支持 \d \s \w 等)。

还有一些替代方案,例如Henry Spencer 的正则表达式库

想一想,Lua正则表达式引擎(在字符串库、gsub 实现等中)可能又快又小,就像语言本身一样。它有其怪癖和局限性,但它非常有用。

副项目LPeg可以成为 REs 的一个有趣的替代品,它仍然是轻量级但功能强大的。

于 2008-11-20T22:21:12.657 回答
5

如果您不需要功能齐全的正则表达式实现(听起来您不需要),那么在Beautiful Code中突出显示的 Brian Kernighan 和 Rob Pike 编写的代码 可能会满足您的需求。我发现了一篇 Dobb 博士的文章,我认为这是书中出现的代码的起源。

于 2008-11-20T21:58:11.097 回答
0

鉴于您的轻量级要求,我推荐Henry Spencer 的正则表达式库,它实现了POSIX BRE 和 ERE 正则表达式风格。这些是您的用户可能已经熟悉的标准正则表达式风格。

于 2008-11-21T10:47:43.553 回答