Tengo un código usando (looking-back … (line-beginning-position))
. Doc cadena de looking-back
estados que es mejor evitar esta función debido a la lentitud. Tengo curiosidad de que el siguiente enfoque sea más rápido?
(save-excursion
(goto-char (line-beginning-position))
(looking-at regexp stuff))
regular-expressions
performance
save-excursion
Geradlus_RU
fuente
fuente
looking-at
versión fácilmente. Gracias.(with-temp-buffer (insert (make-string 10000 ?x)) (looking-back "y"))
, verá que es muy rápido. Ahora cambie la expresión regular a su".*y"
lugar: es insoportablemente lenta, aunque para el lector humano está claro que esto nunca puede coincidir.Respuestas:
Seguro. Ganará especialmente si solo desea probar
char-before
o buscar hacia atrás una cadena literal. Y si debe usarlooking-back
, intente usar unLIMIT
argumento, si es posible.Vea el error Emacs # 17284 para un ejemplo.
fuente