gpt4 book ai didi

java - Antlr4 - 语法解析日志文件

转载 作者:行者123 更新时间:2023-11-30 06:33:30 42 4
gpt4 key购买 nike

我正在尝试解析日志文件条目。

LogGram.g4

grammar LogGram;

logs: log* ;

log : dateformat Identifier '[' className ']' '(' thread ')'
;

thread : Letter+ SPECIAL* LetterOrDigit+
;

className : Identifier ('.' Identifier)* ;

dateformat : DATE TMSTAMP ;

Identifier : Letter LetterOrDigit* ;

Letter : [a-zA-Z$_] ;

LetterOrDigit : [a-zA-Z0-9$_];

SPECIAL : [-@#,;:'"/] ;

DATE : DIGIT DIGIT DIGIT DIGIT '-' DIGIT DIGIT '-' DIGIT DIGIT ;

TMSTAMP : DIGIT DIGIT ':' DIGIT DIGIT ':' DIGIT DIGIT ',' DIGIT DIGIT DIGIT
;

DIGIT : [0-9] ;

WS : [ \t\r\n\u000C]+ -> skip;

服务器.log

2017-08-10 12:50:56,081 ERROR [io.undertow.request] (default task-32)

解析和打印时的控制台输出

line 1:53 mismatched input 'default' expecting Letter
2017-08-10 12:50:56,081 ERROR [io.undertow.request] (defaulttask-32)

为什么打印输出前会出现不匹配线?

最佳答案

我不是antlr专家。只是一个想法

SPECIAL : [-@#,;:'"/] ;

使用- char用于定义范围你可以尝试其他方法吗

HYPHEN : '-';
SPECIAL : [@#,;:'"/] | HYPHEN ;

关于java - Antlr4 - 语法解析日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45615962/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com