自从我对cssparser的糟糕经验以来,我已经为自己设定了使用Parboiled在Java中实现CSS解析器的任务。我已经涵盖了所有的颜色规范,但当然我需要所有其他的...是什么?是指在W3C CSS规范的标记化部分?
所以,我去寻找CSS规范,并在W3C website上找到它。我现在在所有的“原子”编写规则的过程中,却发现一些令人不安this section:
UNICODE-RANGE u\+[0-9a-f?]{1,6}(-[0-9a-f]{1,6})?
扰乱我是[0-9a-f?]
问号的一部分。
段落标题说这里使用的正则表达式是Lex风格的。 ?
在角色类别中没有特殊的含义(谢谢@scizzo的确认)。那么,这是W3C规范中的一个错误,还是真的允许在一个Unicode范围内使用?
?如果是,那是什么意思?
总结:我有我的答案。但是,规范是错误:“问号unicode范围”只能由其本身。鉴于上述正则表达式,这个表达式将被允许,但它显然是非法的:u+4??-733f
这是一回事确认,这意味着问号在Unicode范围内必须是合法的......但我找不到它的含义:/ – fge 2011-12-28 02:45:02
刚刚编辑过,但?基本上是一个通配符。 – sczizzo 2011-12-28 02:46:31
非常感谢链接! – fge 2011-12-28 02:54:34