Классы символов
Ниже приведена таблица классов, которые можно использовать в выражении в квадратных скобках (см. выражение в квадратных скобках), и их значения. Обратите внимание, что символы «[» и «]», обрамляющие имя класса, являются частью этого имени, поэтому регулярному выражению с такими классами нужна ещё одна пара квадратных скобок. Например, регулярное выражение, соответствующее последовательности из одной или нескольких букв и цифр, будет выглядеть так: «[[:alnum:]]+», а не так: «[:alnum:]+».
- «[:ascii:]»
Соответствует любому символу ASCII (коды 0–127).
- «[:alnum:]»
Соответствует любой букве или цифре. Для многобайтовых символов соответствуют символы, свойство Unicode «general-category» которых (см. Свойства символов) указывает, что они являются буквами или десятичными цифрами.
- «[:alpha:]»
Соответствует любой букве. Для многобайтовых символов соответствуют символы, свойство Unicode «general-category» которых (см. Свойства символов) указывает, что они являются буквами.
- «[:blank:]»
Соответствует горизонтальным пробельным символам, определённым в Приложении C Технического стандарта Unicode № 18. В частности, он соответствует пробелам, табуляциям и другим символам, свойство Unicode «general-category» которых (см. Свойства символов) указывает, что они являются разделителями-пробелами. (Если вам нужно искать только пробельные символы ASCII, мы рекомендуем вместо этого использовать явный набор вариантов символов, например «[ \t]», поскольку это будет быстрее, чем
[[:blank:]].)- «[:cntrl:]»
Соответствует любому символу с кодом в диапазоне 0–31.
- «[:digit:]»
Соответствует символам от «0» до «9». Таким образом, «[-+[:digit:]]» соответствует любой цифре, а также символам «+» и «-».
- «[:graph:]»
Соответствует печатным символам — всему, кроме пробелов, управляющих символов ASCII и не-ASCII, суррогатов и кодовых точек, не назначенных Unicode, согласно свойству Unicode «general-category» (см. Свойства символов).
- «[:lower:]»
Соответствует любой строчной букве, определяемой текущей таблицей регистра (см. Таблица регистра). Если
case-fold-searchне являетсяnil, этому классу также соответствует любая прописная буква. Обратите внимание, что у буфера может быть собственная локальная таблица регистра, отличающаяся от таблицы по умолчанию.- «[:multibyte:]»
Соответствует любому многобайтовому символу (см. Представления текста).
- «[:nonascii:]»
Соответствует любому символу, не входящему в ASCII.
- «[:print:]»
Соответствует любому печатному символу — пробелу или печатному символу, которому соответствует «[:graph:]».
- «[:punct:]»
Соответствует любому знаку пунктуации. (В настоящее время для многобайтовых символов ему соответствует всё, что имеет синтаксис не-буквенно-цифрового символа, поэтому точное определение может различаться в разных основных режимах, поскольку синтаксис символа зависит от основного режима.)
- «[:space:]»
Соответствует любому символу с синтаксисом пробельного символа (см. Таблица классов синтаксиса). Обратите внимание, что синтаксис символа, а значит и то, какие символы считаются «пробельными», зависит от основного режима.
- «[:unibyte:]»
Соответствует любому однобайтовому символу (см. Представления текста).
- «[:upper:]»
Соответствует любой прописной букве, определяемой текущей таблицей регистра (см. Таблица регистра). Если
case-fold-searchне являетсяnil, этому классу также соответствует любая строчная буква. Обратите внимание, что у буфера может быть собственная локальная таблица регистра, отличающаяся от таблицы по умолчанию.- «[:word:]»
Соответствует любому символу с синтаксисом символа слова (см. Таблица классов синтаксиса). Обратите внимание, что синтаксис символа, а значит и то, какие символы считаются «составляющими слова», зависит от основного режима.
- «[:xdigit:]»
Соответствует шестнадцатеричным цифрам: от «0» до «9», от «a» до «f» и от «A» до «F».
Классы «[:space:]», «[:word:]» и «[:punct:]» используют таблицу синтаксиса текущего буфера, но не переопределяющие текстовые свойства синтаксиса (см. Свойства синтаксиса).
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Char-Classes.html