antlr解析字符串和return分割字符串
antlr to parse stringand return splitted string
我正在使用 antlr 拆分字符串 { city } | { 国家 } | {大陆}
应该return我
城市,国家,大陆
我的语法是:
splitrule : ( OPENING_BRACES . CLOSING_BRACES ) SEPARATOR (OPENING_BRACES . CLOSING_BRACES); // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ;
SEPARATOR :'|';
OPENING_BRACES : '{';
CLOSING_BRACES : '}';
ANY_CHARACTER :'.';
让我知道我应该如何匹配任意数量的字符和 return 城市、国家或城市国家、大陆
试试下面的语法:
splitrule : item ( SEPARATOR item )* ;
item : OPENING_BRACE ID CLOSING_BRACE ;
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ;
SEPARATOR :'|';
OPENING_BRACE : '{';
CLOSING_BRACE : '}';
ANY_CHARACTER :'.';
如果大括号之间允许有多个单词,请将 item
规则中的 ID
替换为 ID+
。
我正在使用 antlr 拆分字符串 { city } | { 国家 } | {大陆}
应该return我 城市,国家,大陆
我的语法是:
splitrule : ( OPENING_BRACES . CLOSING_BRACES ) SEPARATOR (OPENING_BRACES . CLOSING_BRACES); // match keyword hello followed by an identifier
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ;
SEPARATOR :'|';
OPENING_BRACES : '{';
CLOSING_BRACES : '}';
ANY_CHARACTER :'.';
让我知道我应该如何匹配任意数量的字符和 return 城市、国家或城市国家、大陆
试试下面的语法:
splitrule : item ( SEPARATOR item )* ;
item : OPENING_BRACE ID CLOSING_BRACE ;
ID : [a-z]+ ; // match lower-case identifiers
WS : [ \t\r\n]+ -> skip ;
SEPARATOR :'|';
OPENING_BRACE : '{';
CLOSING_BRACE : '}';
ANY_CHARACTER :'.';
如果大括号之间允许有多个单词,请将 item
规则中的 ID
替换为 ID+
。