繁体   English   中英

C / C ++中的正则表达式库

[英]Regular Expression library in C/C++

我想用C / C ++编写正则表达式库。 什么是任何书籍或文章的良好起点?

我知道可能有可用的库,但是我想编写自己的版本。

一个好的起点是使用现有的实现并批评它们。

注意您不喜欢的数据结构和设计决策。
编写版本时,请避免使用它们。

[2015年1月16日编辑]我最近遇到了这本漂亮的书Beautiful Code 我建议您仔细阅读Brian Kernighan的第1章“正则表达式匹配器”。

您可以阅读Ken Thompson的经典论文“正则表达式搜索算法” ... http://portal.acm.org/citation.cfm?doid=363347.363387 ...该论文应该使您对如何正规化有一个很好的了解。使用有限自动机匹配表达式。

这是另一页,提供了Russ Cox的一些详细信息... http://swtch.com/~rsc/regexp/

希望这些对您有所帮助。

我不知道有什么书可以帮助您了解实施细节-而且我敢肯定,有很多细节可以提高效率。 但是,Thomas A. Sudkamp撰写的《语言和机器》一书将有助于理解实施背后的思想。

我认为您需要做的是将正则表达式编译为有限的自动机。 如果您不太了解语法和自动机,那么那本书的第二部分“语法,自动机和语言”将大有帮助。

本书《编译器,原理,技术和工具》; Alfred Aho,Monica Lam,Ravi Sethi和Jeffrey Ullman(也称为《龙书》)也可能会有所帮助。 它旨在使编译器针对计算机语言而不是针对正则表达式语言。 但是,您可能会发现它很有用,特别是有关解析的部分,因为它具有更多的实用性(与非常理论上的语言和机器相对)。

无论如何,如果我要编写一个正则表达式语言,那将是我的起点。 我建议您从您有权访问的图书馆中借阅。 除此之外,您还应该看一下可行的实现。 我只是在这里猜测,但我认为可能会有关于Perl正则表达式实现的好的文档。 看到它们如此受欢迎并且运作良好。

祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM