Spec-Zone.ru › Elisp

Сравнение текста

Эта функция позволяет сравнивать части текста в буфере, не копируя их сначала в строки.

Функция: compare-buffer-substrings buffer1 start1 end1 buffer2 start2 end2

Эта функция позволяет сравнивать две подстроки одного буфера или двух разных буферов. Первые три аргумента задают одну подстроку, указывая буфер (или имя буфера) и две позиции в буфере. Последние три аргумента задают другую подстроку аналогичным образом. Вы можете использовать nil для buffer1, buffer2 или обоих, чтобы обозначить текущий буфер.

Значение отрицательно, если первая подстрока меньше, положительно, если первая больше, и равно нулю, если они равны. Абсолютное значение результата равно единице плюс индекс первого отличающегося символа в подстроках.

Эта функция игнорирует регистр при сравнении символов, если case-fold-search не nil. Она всегда игнорирует свойства текста.

Предположим, в текущем буфере есть текст ‘foobarbar haha!rara!’; тогда в этом примере две подстроки — ‘rbar ’ и ‘rara!’. Значение равно 2, потому что первая подстрока больше во втором символе.

(compare-buffer-substrings nil 6 11 nil 16 21)
     ⇒ 2

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Comparing-Text.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API