Ich lese Douglas Crockfords Javascript: The Good Parts, Ich habe gerade die regulären Ausdrücke Kapitel beendet. In diesem Kapitel nennt er \b
der JavaScript, um positive Vorschau (?=)
und negative Vorschau (?!)
„kein guter Teil“JavaScript: Die guten Teile; Warum ist Lookahead nicht gut?
Er erklärt, der Grund für \b
nicht gut zu sein (es verwendet \w
für Wortgrenze zu finden, und \w
nicht für jeden Sprache, die Unicode-Zeichen verwendet), und das sieht für mich einen sehr guten Grund aus.
Leider ist der Grund für positive und negative Lookahead nicht gut, und ich kann nicht mit einem kommen. Mastering Regular Expressions zeigte mir die Macht, die mit Lookahead kommt (und natürlich die damit verbundenen Probleme), aber ich kann mir nichts vorstellen, was es als "keinen guten Teil" qualifizieren würde.
Kann jemand erklären, warum JavaScript (positiv | negativ) Lookahead oder (positiv | negativ) Lookahead im Allgemeinen als "nicht gut" betrachtet werden sollte?
Es scheint, ich bin nicht der einzige mit dieser Frage: one und two.
In dem Moment, in dem ich diesen Satz gelesen habe, habe ich ihn gegoogelt und mir das einfallen lassen. Sehr seltsam - alles andere, was er sagt, macht Sinn, und er erklärt fast immer seine Gründe dafür, Dinge als "schlecht" zu bezeichnen. – Skilldrick
Ich stimme @Skilldrick zu. Crockford war wirklich gut darin, seine Argumentation für fast jeden Punkt zu erklären, den er in diesem Buch macht, aber in diesem Fall erklärt er überhaupt nichts. Ich habe auch gegoogelt, nachdem ich keine Erklärung gefunden hatte und bin hier gelandet. Es scheint mir so, als ob positive/negative Look-a-eads großartig sind, solange du verstehst, wie sie funktionieren und welche negativen Auswirkungen sie auf die Performance haben könnten, wenn sie unangemessen verwendet werden. – Chev