我想在 C++ 中使用 MFC 实现简单的文本定向正则表达式引擎。 那么您能告诉我文本定向正则表达式引擎在内部是如何工作的吗?
例如 <.+> 这将在 html 中找到一个标签。这在内部如何运作?
也请告诉我如何在 MFC 中使用正则表达式。
最佳答案
这太复杂了,无法在 SO 答案中解释。您要么需要一本关于编译器的高级教科书,要么需要访问现有 Regex 引擎的源代码。幸运的是,OpenJDK 源代码是开源的……Apache Harmony 版本、Perl 版本、Python 版本等的源代码也是开源的。
一些可能的教科书:
"Compilers: Principles, Techniques and Tools (2nd ed)"作者 Aho Sethi & Ullman(又名龙之书)。词法分析一章涵盖了正则表达式及其实现。
"Introduction to Automata Theory, Languages, and Computation (3rd ed)"由 Hopcroft、Motwani &。厄尔曼。 (由@Noufal Ibrahim 提供。)
(这两本书的早期版本也可以买到......价格更低。)
For example
<.+>
this will find tag in html how it works internally.
油嘴滑舌的回答是,这取决于您使用的正则表达式引擎。
关于c++ - 文本定向正则表达式引擎如何在内部工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8135075/