最佳答案
即使经过多年的编程,我也很惭愧地说,我从来没有真正完全掌握正则表达式。一般来说,当一个问题需要正则表达式时,我通常可以(在大量引用语法之后)想出一个合适的方法,但是我发现自己越来越频繁地使用这种技术。
因此,为了自学和理解正则表达式 适当地,我决定做我在学习时经常做的事情; 也就是说,尝试写一些雄心勃勃的东西,一旦我觉得自己学到了足够的东西,我可能就会放弃。
为此,我想用 Python 编写一个正则表达式解析器。在这种情况下,“学得足够多”意味着我想实现一个能够完全理解 Perl 扩展的正则表达式语法的解析器。然而,它并不一定是最有效的解析器,甚至在现实世界中也不一定是可用的。它只需要正确地匹配或不匹配字符串中的模式即可。
问题是,我该从哪里开始?除了在某种程度上涉及到有限状态自动机这一事实之外,我对正则表达式是如何解析和解释的几乎一无所知。如能就如何解决这一令人望而生畏的问题提出任何建议,我们将不胜感激。
编辑: 我应该澄清一下,虽然我将使用 Python 中的 执行正则表达式解析器,但我并不过分关心示例或文章是用什么编程语言编写的。只要它不在 Brainfuck,我可能就会对它有足够的了解,让它值得我花时间。