我想挑選出文本的所有令牌和需要匹配所有的ASCII和Unicode字符,所以這裏是我已經擺開Unicode字符怎麼辦。我匹配ANTLR
fragment CHAR : ('A'..'Z') | ('a'..'z');
fragment DIGIT : ('0'..'9');
fragment UNICODE : '\u0000'..'\u00FF';
現在,如果我寫我的令牌規則爲:
TOKEN : (CHAR|DIGIT|UNICODE)+;
我拿到「決定可以匹配輸入諸如 「 'A' .. 'Z'」 使用多個備選方案:1,3 其結果是,可替代(S)3爲輸入「 」決定可以匹配輸入諸如禁用‘‘0’..‘9’’使用多個替代:2,3 其結果是,可替代(S)3被禁用該輸入「
並沒有得到匹配: 並且如果我把它寫成
TOKEN : (UNICODE)+;
沒有得到匹配。
有沒有辦法做到這一點。
「\ u0000的」 ..「\ u00FF」並不包括「所有Unicode字符」,只有它涵蓋第256個。 – 2010-01-17 17:24:34
那也是。我錯過了! – 2010-01-17 17:26:19
是的,但我認爲Java還不支持五位數的Unicode。 – Lezan 2010-01-17 19:24:59