如何在.NET中实现正则表达式?

时间:2009-07-10 18:06:14

标签: c# .net regex performance grep

我刚刚阅读了这篇interesting article有关支持正则表达式的各种语言的实现细节。

它描述了使用非确定性有限自动机(NFA)与确定性有限自动机(DFA)的正则表达式的替代实现。它声称反向跟踪DFA实现(Perl,Java和其他版本中使用的版本)在一些特别“病态”的正则表达式上容易受到非常慢的性能影响。 (grep,awk和Tcl仍然使用DFA,但不知何故以指数方式加快)

它没有引用.NET框架,但我想知道如何实现.NET(特别是C#)正则表达式,以及它们在性能方面的比较。

修改

我可以假设,因为回答者的文章提到.NET会回溯,它会与Perl和Java相提并论吗?

1 个答案:

答案 0 :(得分:10)

有一个 awesome 写作here。他利用了这样一个事实:您可以介入.NET框架代码并查看它的功能,并解释一切是如何工作的。这是一个很好的阅读。