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

Tim*_*Tim 5 regex

在POSIX中,为什么一个字符类如[[:digit:]]双括号?外支架和内支架是否相同?谢谢?

hwn*_*wnd 8

字符类定义了一组字符.说 - "匹配类指定的一个字符".[:digit:]是一个POSIX字符类,[ ... ]这里是一个括号表达式.

POSIX类表示法仅在括号内的表达式中有效.例如, [:digit:]当不在括号内的表达式中时,不会被读作POSIX命名类.相反,在大多数调味剂是包含字符(字符类:,d,i,g,t)字面.

  • 为了完整起见,在某些情况下可以在正则表达式之外使用字符类,在这些情况下,它们不一定包含在“[`...”]`中。一个众所周知的例子是 `tr` 实用程序,其中将小写字母转换为大写字母类似于 `tr '[:lower:]' '[:upper:]'`。 (2认同)

D.S*_*ley 5

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