Unicode 这是什么意思?在W3CCSS规范的标记化部分是什么意思?

Unicode 这是什么意思?在W3CCSS规范的标记化部分是什么意思?,unicode,grammar,lex,css,Unicode,Grammar,Lex,Css,自从我在cssparser上的糟糕经历以来,我就为自己设定了一个任务,用Java实现CSS解析器。我已经有所有的颜色规格涵盖,但我当然需要所有的休息 所以,我去寻找CSS规范,并在网站上找到了它。我现在正在为所有“原子”编写规则,但在以下方面发现了一些令人不安的东西: 让我不安的是[0-9a-f?]中的问号 段落标题说这里使用的正则表达式是Lex风格的。?在字符类中没有特殊意义(感谢@scizzo的确认)。那么,这是W3C规范中的输入错误,还是Unicode范围中真的允许使用??如果是,这意味着

自从我在cssparser上的糟糕经历以来,我就为自己设定了一个任务,用Java实现CSS解析器。我已经有所有的颜色规格涵盖,但我当然需要所有的休息

所以,我去寻找CSS规范,并在网站上找到了它。我现在正在为所有“原子”编写规则,但在以下方面发现了一些令人不安的东西:

让我不安的是
[0-9a-f?]
中的问号

段落标题说这里使用的正则表达式是Lex风格的。
在字符类中没有特殊意义(感谢@scizzo的确认)。那么,这是W3C规范中的输入错误,还是Unicode范围中真的允许使用
?如果是,这意味着什么


总结:我有我的答案。但是,该规范是错误的:“问号unicode范围”只能由其自身定义。考虑到上面的正则表达式,这个表达式是允许的,但它显然是非法的:
u+4???-733f
是的,这是一个字面上的问号:

请注意,在字符类中,除转义外,所有正则表达式运算符都会失去其特殊含义 (“\”)和字符类运算符“-”、“]”,以及 课程的开头是“^”

现在,根据W3C的说法:

字符表示“任意数字值”(例如U+4??)


这是已经确认的一件事,这意味着问号在Unicode范围内必须是合法的。。。但我找不到它的含义:/
UNICODE-RANGE   u\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?