Sto leggendo Douglas Crockfords Javascript: The Good Parts, ho appena finito il capitolo delle espressioni regolari. In questo capitolo si chiama, guarda avanti positiva (?=)
e lookahead negativo (?!)
"non è una buona parte" di \b
JavaScriptJavaScript: Le parti buone; perché guardare avanti non va bene?
Egli spiega il motivo per \b
essere non va bene (usa \w
per Finding limite di parola, e \w
non riesce per qualsiasi linguaggio che usa caratteri unicode), e mi sembra un'ottima ragione.
Sfortunatamente, il motivo per cui il lookahead positivo e negativo non è buono viene escluso e non riesco a inventarne uno. Mastering Regular Expressions mi ha mostrato il potere che viene fornito con lookahead (e ovviamente spiega i problemi che comporta), ma non posso davvero pensare a qualcosa che lo qualificherebbe come "non una buona parte".
Qualcuno può spiegare perché JavaScript (positivo | negativo) lookahead o (positivo | negativo) guarda avanti in generale dovrebbe essere considerato "non buono"?
Sembra che non sia l'unico con questa domanda: one e two.
Nel momento in cui ho letto quella frase l'ho cercato su google, e ne sono venuto fuori. Molto strano - tutto il resto dice che ha perfettamente senso, e quasi sempre spiega le sue ragioni per dire che le cose sono "cattive". – Skilldrick
Sono d'accordo con @Skilldrick. Crockford è stato davvero bravo a spiegare il suo ragionamento per quasi ogni punto che fa in questo libro, ma in questo caso non spiega assolutamente nulla. Anch'io ho cercato su Google dopo aver trovato alcuna spiegazione e finito qui. A me sembra che i lookahead positivi/negativi siano fantastici finché capisci come funzionano e l'impatto potenzialmente negativo che potrebbero avere sulle prestazioni se usato in modo inappropriato. – Chev