簡體   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