Ich habe Code mit (looking-back … (line-beginning-position))
. Doc looking-back
gibt an, dass es besser ist, diese Funktion wegen Langsamkeit zu vermeiden. Ich bin gespannt, ob der folgende Ansatz schneller sein wird.
(save-excursion
(goto-char (line-beginning-position))
(looking-at regexp stuff))
regular-expressions
performance
save-excursion
Geradlus_RU
quelle
quelle
looking-at
Version leicht einführen kann. Vielen Dank.(with-temp-buffer (insert (make-string 10000 ?x)) (looking-back "y"))
Sie sehen, dass es sehr schnell ist. Ändern Sie nun".*y"
stattdessen den regulären Ausdruck in : Es ist unerträglich langsam, obwohl dem menschlichen Leser klar ist, dass dies niemals mithalten kann.Antworten:
Bestimmt. Sie profitieren besonders, wenn Sie nur eine Literalzeichenfolge testen
char-before
oder rückwärts suchen möchten . Und wenn Sie verwenden müssen,looking-back
versuchen SieLIMIT
, wenn möglich, ein Argument zu verwenden .Ein Beispiel finden Sie unter Emacs-Fehler Nr. 17284 .
quelle