即使经过多年的编程,我也很惭愧地说我从未真正完全掌握正则表达式.一般来说,当一个问题需要一个正则表达式时,我通常(在一堆引用语法之后)得出一个合适的一个,但这是一种我发现自己经常使用的技术.
所以,为了自学并正确地理解正则表达式,我决定在尝试学习时做我一直做的事情; 也就是说,一旦我觉得我已经学到了足够多的东西,就试着写一些我可能会放弃的野心勃勃的东西.
为此,我想在Python中编写一个正则表达式解析器.在这种情况下,"学习足够"意味着我想实现一个可以完全理解Perl的扩展正则表达式语法的解析器.但是,它不一定是最有效的解析器,甚至不一定在现实世界中可用.它只需要正确匹配或不匹配字符串中的模式.
问题是,我从哪里开始?我几乎不知道如何解析和解释正则表达式,除了它以某种方式涉及有限状态自动机这一事实.如何处理这个相当艰巨的问题的任何建议将非常感激.
编辑:我应该澄清一下,当我要在Python中实现正则表达式解析器时,我并不过分讨论编写示例或文章的编程语言.只要它不在Brainfuck中,我可能会理解这让它值得我这么做.
Jeffrey Friedl在他的"Mastering Regular Expressions"一书中列出了3种主要的正则表达式引擎:
R中哪一个用作标准?