Nach dem Lesen von RE/NFA und DFA, scheint es, dass das Finden einer Teilzeichenkette innerhalb einer Zeichenkette tatsächlich asymptotisch schneller sein kann, indem man eine RE anstelle einer Brute-Force-O (mn) -Findung verwendet. Meine Schlussfolgerung ist, dass ein DFA tatsächlich den Status beibehalten und vermeiden würde, jeden Charakter im "Heuhaufen" mehr als einmal zu verarbeiten. Daher können Suchen in langen Strings viel schneller sein, wenn sie mit regulären Ausdrücken ausgeführt werden.Unterzeichenfolge stimmt schneller mit regulärem Ausdruck überein?
Dies gilt natürlich nur für RE-Matcher, die von NFA in DFA konvertieren.
Hat jemand im echten Leben eine bessere Saitenanpassungsleistung bei der Verwendung von RE erfahren als bei einem Brute-Force-Matcher?
Boyer-Moore ist 'O (n)'; es erfordert niemals mehr als 3n-Vergleiche. Der einfachere Boyer-Moore-Horspool kann bis zu "mn" benötigen, aber das ist nicht der "gleiche" Algorithmus. – polygenelubricants