我刚刚读了这个interesting article关于支持正则表达式的各种语言的实现细节。
它描述了使用非确定性有限自动机 (NFA) 与确定性有限自动机 (DFA) 的正则表达式的替代实现。它声称回溯 DFA 实现(在 Perl、Java 和其他语言中使用的版本)在某些特别“病态”的正则表达式上容易出现非常缓慢的性能。 (grep、awk 和 Tcl 仍然使用 DFA,但速度呈指数级增长)
它没有提及 .NET 框架,但我想知道 .NET(尤其是 C#)正则表达式是如何实现的,以及它们在性能方面的比较。
编辑:
既然回答者的文章提到 .NET 进行回溯,我是否可以假设它将与 Perl 和 Java 相提并论?
最佳答案
有一篇很棒的文章 here .他利用了您可以进入 .NET 框架代码并查看其功能这一事实,并解释了一切是如何工作的。这是一本很棒的读物。
关于c# - .NET 中的正则表达式是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1111092/