我想将\ u0000范围内的任何字符与\ uFFFF匹配,以下代码是不够的:
grammar CharacterClass;
start : CH* EOF;
CH : [\u0000-\uFFFF];
修改
我问,因为我想在XML结构中插入二进制数据:
<binary:key>uhihahdudi some binary data, that should be ignored by ANTLR
izgizgio</binary:key>
当然可以将自己限制在[\ u0000 \ u00FF]范围内,而我的Inputstream只输出已处理数据的字节值,但是我必须实现额外的逻辑才能使用我的实际文本数据。< / p>
对我来说最好的解决方案是,ANTLR以某种方式跳过二进制部分,因此我可以处理文本数据(处理二进制部分我只需要这些部分的开始和结束位置);
答案 0 :(得分:3)
ANTLR 4只能匹配范围[\u0000-\uFFFE]
。如果您确实需要匹配所有可能的输入,则需要匹配[\u0000-\u00FF]
并将输入作为字节而不是UTF-16字符提供给解析器。