Пропуск символов
Следующие две функции перемещают указатель по заданному набору символов. Например, они часто используются для пропуска пробелов. Для связанных функций см. Перемещение и синтаксис.
Эти функции преобразуют строку набора в многобайтовую, если буфер многобайтовый, и в однобайтовую, если буфер однобайтовый, как и функции поиска (см. Поиск и сопоставление).
- Функция: 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