否定速记字符类的意外工作

Cod*_*ody 4 regex regex-negation

正则表达式

/[\D\S]/
Run Code Online (Sandbox Code Playgroud)

应匹配不是数字或不是空格的字符

但是当我在regexpal中测试这个表达式时

它开始匹配任何数字,空格的字符

我做错了什么?

Qta*_*tax 6

\D=除数字之外的所有字符, \S=除空格之外的所有字符

[\D\S]= 联合(集合论)上面的字符组=所有字符.

为什么?因为\D包含\s\S包含\d.

如果您想匹配不是dights或空格的字符,您可以使用[^\d\s].