【发布时间】:2021-11-27 04:20:24
【问题描述】:
我想设计一个表达日期格式类型的规则 喜欢:
- 'ddmmyyyy'
- 'dd/mm/yyyy'
- 'mm/dd/yyyy'
- 'dd-mm-yyyy'
- 'yyyymmdd'
我在 Lexer 中尝试过,但没有成功(令牌识别错误)
fragment DATE_SEPARATOR: ('/'|',');
FORMATE
: '\'' (MONTH{1,2} (DATE_SEPARATOR)? DAY{1,2} (DATE_SEPARATOR)? YEAR{1,4}
| DAY{1,2} (DATE_SEPARATOR)? MONTH{1,3} (DATE_SEPARATOR)? YEAR{1,4}
| YEAR{1,4} (DATE_SEPARATOR)? MONTH{1,3} (DATE_SEPARATOR)? DAY{1,2})
;
fragment DAY : ('d'|'D'|'day'|'DAY') ;
fragment MONTH : ('m'|'M'|'Mon'|'Month'|'mon'|'month') ;
fragment YEAR : ('y'|'Y'|'Year'|'year'|'Yr'|'yr') ;
我只在解析器中使用 SINGLE_QUOTE 调用 FORMATE,它指的是 Lexer 中的 '
【问题讨论】:
标签: antlr date-formatting