[英]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
似乎是獲得所需行為的最合理方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.