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博士的文章,我认为该文章是本书中出现的代码的起源.
| 归档时间: |
|
| 查看次数: |
7651 次 |
| 最近记录: |