为什么POSIX中的字符类中有双括号?

时间:2015-02-22 22:02:55

标签: regex

在POSIX中,为什么像[[:digit:]]这样的字符类有双括号?外支架和内支架是否相同?感谢?

2 个答案:

答案 0 :(得分:8)

character class定义一组字符。说 - “匹配一个字符指定的字符”。 [:digit:]是POSIX字符类,[ ... ]是括号表达式。

POSIX类表示法仅在括号内的表达式中有效。例如, [:digit:],当不在括号内的表达式中时,不会被读作POSIX命名类。相反,在大多数风格中,字面上包含字符(:digt)的字符类。

答案 1 :(得分:5)

外括号表示匹配的任何字符。 [:digit:]是POSIX"任何数字"人物类。例如[[:digit:][:alpha:]]表示"任何数字或任何字母字符"。在ASCII中,[[:digit:][:alpha:]]相当于[0-9a-zA-Z]