下表列出了可在方括号表达式中使用的各类字符类(see bracket expression)及其含义。 注意,包裹类名的 ‘[’ 与 ‘]’ 属于类名的一部分,因此使用这些类的正则表达式需要额外一对括号。例如,匹配一个或多个字母与数字序列的正则表达式应为 ‘[[:alnum:]]+’,而非 ‘[:alnum:]+’。
匹配任意 ASCII 字符(编码 0–127)。
匹配任意字母或数字。对于多字节字符,它匹配 Unicode ‘general-category’ 属性(see 字符属性)标明为字母或十进制数字的字符。
匹配任意字母。对于多字节字符,它匹配 Unicode ‘general-category’ 属性(see 字符属性)标明为字母的字符。
匹配水平空白字符,定义遵循 Unicode 技术标准 #18 附录 C。具体包括空格、制表符,以及其他 Unicode ‘general-category’ 属性(see 字符属性)标明为间距分隔符的字符。(若只需匹配 ASCII 空白字符,建议使用显式的字符备选集合,例如 ‘[ \t]’,其效率高于 [[:blank:]]。)
匹配编码在 0–31 范围内的任意控制字符。
匹配 ‘0’ 至 ‘9’。因此,‘[-+[:digit:]]’ 可匹配任意数字以及 ‘+’ 和 ‘-’。
匹配可显示图形字符——排除空格、ASCII 与非 ASCII 控制字符、代理项以及 Unicode 未分配码点,判定依据为 Unicode ‘general-category’ 属性(see 字符属性)。
匹配任意小写字母,由当前大小写表决定(see 大小写转换表)。若 case-fold-search 非 nil,则同时匹配大写字母。注意缓冲区可使用与默认不同的本地大小写表。
匹配任意多字节字符(see 文本表示方式)。
匹配任意非 ASCII 字符。
匹配任意可打印字符—包括空格与 ‘[:graph:]’ 匹配的图形字符。
匹配任意标点符号。(目前对多字节字符,它匹配所有非词语语法字符,因此其精确定义会随主模式变化,因为字符语法由主模式决定。)
匹配任意具有空白语法的字符(see 语法类别表)。注意字符语法(即哪些字符被视为“空白”)由主模式决定。
匹配任意单字节字符(see 文本表示方式)。
匹配任意大写字母,由当前大小写表决定(see 大小写转换表)。若 case-fold-search 非 nil,则同时匹配小写字母。注意缓冲区可使用与默认不同的本地大小写表。
匹配任意具有词语语法的字符(see 语法类别表)。注意字符语法(即哪些字符被视为“词语构成字符”)由主模式决定。
匹配十六进制数字:‘0’ 至 ‘9’、‘a’ 至 ‘f’ 以及 ‘A’ 至 ‘F’。
字符类 ‘[:space:]’、‘[:word:]’ 与 ‘[:punct:]’ 使用当前缓冲区的语法表,而非任何覆盖性语法文本属性(see 语法属性)。