C ++中的正则表达式

时间:2011-02-26 21:02:43

标签: c++ regex algorithm

我想为正则表达式编写C ++库。我知道有很多库可用,但我想学习正则表达式背后的理论,并由我自己实现。

任何人都可以指导我应该从什么开始。

6 个答案:

答案 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)