Spec-Zone.ru › Elisp

Пропуск символов

Следующие две функции перемещают указатель по заданному набору символов. Например, они часто используются для пропуска пробелов. Для связанных функций см. Перемещение и синтаксис.

Эти функции преобразуют строку набора в многобайтовую, если буфер многобайтовый, и в однобайтовую, если буфер однобайтовый, как и функции поиска (см. Поиск и сопоставление).

Функция: skip-chars-forward набор-символов &опционально ограничение

Эта функция перемещает указатель в текущем буфере вперед, пропуская заданный набор символов. Она проверяет символ, следующий за указателем, затем перемещает указатель, если символ соответствует набор-символов. Это продолжается до тех пор, пока не будет достигнут символ, который не соответствует набору. Функция возвращает количество пропущенных символов.

Аргумент набор-символов — это строка, похожая на содержимое ‘[…]’ в регулярном выражении, за исключением того, что ‘]’ не завершает его, а ‘\’ экранирует ‘^’, ‘-’ или ‘\’. Таким образом, "a-zA-Z" пропускает все буквы, останавливаясь перед первой небуквой, и "^a-zA-Z" пропускает небуквы, останавливаясь перед первой буквой (см. Регулярные выражения). Также можно использовать классы символов, например, "[:alnum:]" (см. Классы символов).

Если ограничение задано (это должно быть число или маркер), оно определяет максимальную позицию в буфере, до которой можно переместить указатель. Указатель остановится на или перед ограничение.

В следующем примере указатель изначально расположен непосредственно перед ‘T’. После обработки выражения указатель расположен в конце этой строки (между ‘t’ в ‘hat’ и символом новой строки). Функция пропускает все буквы и пробелы, но не символы новой строки.

---------- Buffer: foo ----------
I read "∗The cat in the hat
comes back" twice.
---------- Buffer: foo ----------
(skip-chars-forward "a-zA-Z ")
     ⇒ 18

---------- Buffer: foo ----------
I read "The cat in the hat∗
comes back" twice.
---------- Buffer: foo ----------
Функция: skip-chars-backward набор-символов &опционально ограничение

Эта функция перемещает указатель назад, пропуская символы, соответствующие набор-символов, до ограничения. Она похожа на skip-chars-forward за исключением направления движения.

Значение возврата указывает пройденное расстояние. Это целое число, которое равно нулю или меньше нуля.

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/Skipping-Characters.html

Spec-Zone.ru

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