我想为正则表达式编写C ++库。我知道有很多库可用,但我想学习正则表达式背后的理论,并由我自己实现。
任何人都可以指导我应该从什么开始。
答案 0 :(得分:3)
http://swtch.com/~rsc/regexp/regexp1.html很好地解释了正则表达式的两种主要方法,它们的权衡,以及如何使更快的一个(DFA)可用于大多数实现无法使用它们的情况
答案 1 :(得分:1)
同样值得研究的书“编译器:原理,技术和工具”深入介绍了正则表达式解析背后的技术(以及关于DFA和NDFA的理论)。它有很好的伪代码示例,可以帮助创建自己的实现
答案 2 :(得分:1)
只要您想编写库,那么除了引用其他答案提供的优秀资源之外,您还可以探索在N3225的第28章中找到的正则表达式的C ++ 0x规范。< / p>
答案 3 :(得分:0)
就我而言,这是关于正则表达主题的书。它可能无法帮助您找到如何编写C ++库的代码,但理论的解释非常好,它包含了许多在许多上下文中实际应用正则表达式的示例。
http://oreilly.com/catalog/9780596528126?green=9514625548&cmp=af-mybuy-9780596528126.IP
答案 4 :(得分:0)
In the Microsoft implementation of the TR1,这是下一个C ++ 0x标准的报告,有<regex>
库可用。
TR1适用于visual 2008,默认情况下为visual 2010。
但是,只有当你打算在Windows平台上进行编程时,这才有趣。
我不知道g ++是否在其tr1实现中包含<regex>
库。我想是的,但我不知道。
答案 5 :(得分:0)