繁体   English   中英

如何在 ANTLR 3 中匹配固定数量的字符?

[英]How to match a fixed number of characters in ANTLR 3?

我想在我的 ANTLR 语法中解析 ISO 8601 日期。

2001-05-03

我的语法文件中有以下条目:

date    : FOUR_DIGIT ('-')? TWO_DIGIT ('-')? TWO_DIGIT ;

FOUR_DIGIT
    : TWO_DIGIT TWO_DIGIT ; 

TWO_DIGIT
    : DIGIT DIGIT ;

DIGIT   : ('0'..'9') ;

我知道我可以用DIGIT+匹配一个或多个,用DIGIT*匹配零个或多个

虽然这可行,但是否有更简单的语法来指定我想完全匹配 2 DIGIT

贾罗德·罗伯逊写道:

虽然这可行,但是否有更简单的语法来指定我想完全匹配 2 DIGIT?

不, DIGIT DIGIT是精确匹配两位数字的唯一方法。 不幸的是,ANTLR支持DIGIT{2}类的东西。

我很确定 ANTLR 3 除了*+?之外没有量词 . DIGIT DIGIT DIGIT DIGIT似乎是获得所需行为的最合理方法。

http://www.antlr.org/wiki/display/ANTLR3/Grammars

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM