You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求优化用于区分单词、字母数字与数字的ANTLR语法

优化ANTLR语法实现精准Token识别

我来帮你优化这个ANTLR语法,让它能正确解析你给出的输入字符串,精准识别出单词(words)、字母数字标识符(alphanumeric)、数字(numbers)和特殊符号(specials)。当前语法存在几个核心问题:缺少字母数字类型的定义、规则冗余臃肿、括号符号定义颠倒,以及Token优先级不合理,导致无法正确识别UUID这类带连字符的串。

下面是优化后的完整语法:

grammar Expressions;

// 解析器入口规则:接收所有Token序列直到结束
parse
    : token+ EOF
    ;

// 统一Token类型枚举
token
    : WORDS
    | ALPHANUMERIC
    | NUMBERS
    | SPECIALS
    ;

// 词法规则:优先级从高到低排列,特殊规则在前
ALPHANUMERIC
    : [a-zA-Z0-9]+ ( '-' [a-zA-Z0-9]+ )+  // 匹配带连字符的字母数字串(如UUID)
    ;

WORDS
    : [a-zA-Z]+  // 纯字母组成的单词
    ;

NUMBERS
    : [0-9]+ ( '.' [0-9]+ )?  // 整数或小数,调整顺序避免歧义
    ;

// 合并所有特殊符号到一个规则,便于维护
SPECIALS
    : '&&' | '||' | '==' | '=' | '>' | '<' | '>=' | '<=' | '!=' | '!'
    | '+' | '-' | 'if' | ':' | '[' | ']' | '(' | ')' | '.'
    ;

// 跳过空白字符
WS
    : [ \t\r\n]+ -> skip
    ;

关键优化细节:

  • 新增ALPHANUMERIC规则:专门匹配UUID这类带连字符的字母数字组合,并且放在词法规则最前面——ANTLR会优先匹配更长、更特殊的规则,这样就能避免UUID被拆分成数字和减号。
  • 简化解析器规则:用极简的parse和token规则替代原来冗余复杂的expression规则,完全贴合你逐Token识别的需求,可读性和维护性大幅提升。
  • 修正特殊符号错误:把原来颠倒的括号定义(FLB和FRB)修正为正确的(和),同时把所有特殊符号合并到SPECIALS规则中,不用再单独维护多个零散的符号规则。
  • 优化数字规则:调整NUMBERS的匹配顺序,先匹配整数再匹配小数,避免解析时出现歧义。
  • 精简单词规则:用[a-zA-Z]+替代原来的[a-zA-Z][a-zA-Z]*,效果完全一致但写法更简洁。

测试你的目标输入

针对你提供的输入字符串:

SYS [ErrorCode is not Available] : Transaction ID: d9d1211e-d273-40e1-bdd0-e4c9a8036ef3 . This can be ignored safely to: map To Not availble : works in progress

解析后的Token序列完全符合你的预期:

  • WORDS → SYS
  • SPECIALS → [
  • WORDS → ErrorCode
  • WORDS → is
  • WORDS → not
  • WORDS → Available
  • SPECIALS → ]
  • SPECIALS → :
  • WORDS → Transaction
  • WORDS → ID
  • SPECIALS → :
  • ALPHANUMERIC → d9d1211e-d273-40e1-bdd0-e4c9a8036ef3
  • SPECIALS → .
  • WORDS → This
  • WORDS → can
  • WORDS → be
  • WORDS → ignored
  • WORDS → safely
  • WORDS → to
  • SPECIALS → :
  • WORDS → map
  • WORDS → To
  • WORDS → Not
  • WORDS → availble
  • SPECIALS → :
  • WORDS → works
  • WORDS → in
  • WORDS → progress

内容的提问来源于stack exchange,提问作者Raihan Wadud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 18:57:36