Von Reguläre Ausdrücke 3e:Wenn NFA und DFA gleichwertig wären, warum hätten wir dann zwei Engines für Regex?
Als Ergebnis grob gesagt, gibt es drei Arten von regex Motoren:
- DFA (POSIX oder nicht-ähnlich oder so)
- traditioneller NFA (am häufigsten:... Perl, .NET, PHP, Java, Python,)
- POSIX NFA
Aus der Theorie der Berechnung: Formale Sprachen, Automata und Komplexität:
Für jede NFA gibt es einen DFA, die genau die gleiche Sprache akzeptiert.
Kann ich argumentieren, dass NFA und DFA die gleiche Sache sind? Oder auch wenn ihre Fähigkeit, Muster zu erkennen, gleichwertig ist, aber in irgendeiner Weise noch anders ist?
Die Tatsache, dass Sie ein DFA erstellen können, das die gleiche Sprache akzeptiert, bedeutet nicht, dass sie "gleich" sind. Sie arbeiten anders, so sind sie anders. – tripleee
Siehe hier: http://math.stackexchange.com/questions/563829/difference-between-nfa-and-dfa –
Mögliche Duplikate von [DFA vs NFA-Engines: Was ist der Unterschied in ihren Fähigkeiten und Einschränkungen?] (Http : //stackoverflow.com/questions/3978438/dfa-vs-nfa-engines-what-is-the-difference-in-their-capabilities-and-limitations) – bufh