Ich habe gerade gelesen interesting article über die Implementierungsdetails für verschiedene Sprachen, die reguläre Ausdrücke unterstützen.Wie werden reguläre Ausdrücke in .NET implementiert?
Es beschreibt eine alternative Implementierung von regulären Ausdrücken, die nicht-deterministische endliche Automaten (NFAs) gegenüber deterministischen (DFAs) verwendet. Es wird behauptet, dass Rückverfolgungs-DFA-Implementierungen (die in Perl, Java und anderen verwendete Version) für sehr "pathologische" reguläre Ausdrücke anfällig für sehr langsame Leistung sind. (grep, awk und Tcl verwenden immer noch DFAs, sind aber irgendwie exponentiell schneller)
Es gibt keinen Verweis auf das .NET-Framework, aber ich würde gerne wissen, wie .NET (C# insbesondere) reguläre Ausdrücke implementiert sind, und wie sie sich in Bezug auf die Leistung vergleichen.
Edit:
Kann ich davon ausgehen, da der Artikel des Antworter erwähnt .NET nicht Rückzieher, dass es auf einer Stufe mit Perl und Java sein wird?
FYI, es gibt nur reguläre Ausdrücke von .NET, nicht C# und VB.NET reguläre Ausdrücke. –
Danke John - Ich hatte eine Ahnung, dass es eine einzige Codebasis war, aber war nicht sicher, ob C# alles offen legte, was VB nicht hatte. –
Nur offtopic aber bezogen auf den Kommentar: afaik, .NET ist in C# codiert. : P Aber ich kann sehen, wo jemand dadurch verwirrt werden würde. – Zack