Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ANTLR将非贪婪序列获取为字符串_Java_Parsing_Antlr - Fatal编程技术网

Java 使用ANTLR将非贪婪序列获取为字符串

Java 使用ANTLR将非贪婪序列获取为字符串,java,parsing,antlr,Java,Parsing,Antlr,我无法将序列作为字符串获取。我有一个包含如下字符串的文件: {TEXT="<div itemprop=\"content\"><div>some text</div>"} 但它失败了,序列只能以这种方式获得一个符号。我试过: parse : line+; line : '{TEXT="' (a+=SEQUENCE)*? '"}' {System.out.println($a.getText())}; SEQUENCE : .; 我有令牌列表,所以我不能使用

我无法将序列作为字符串获取。我有一个包含如下字符串的文件:

{TEXT="<div itemprop=\"content\"><div>some text</div>"}
但它失败了,序列只能以这种方式获得一个符号。我试过:

parse : line+;
line : '{TEXT="' (a+=SEQUENCE)*? '"}' {System.out.println($a.getText())};
SEQUENCE : .;

我有令牌列表,所以我不能使用getText

如果你想这样做,你可以这样做:

grammar Sequence;

parse : line+;
line : '{TEXT="' a=sequence '"}' {System.out.println(((LineContext)_localctx).a.getText());};
sequence : .+?;

ANY:.;
但在ANTLR4中还有其他机制,如侦听器和访问者

grammar Sequence;

parse : line+;
line : '{TEXT="' a=sequence '"}' {System.out.println(((LineContext)_localctx).a.getText());};
sequence : .+?;

ANY:.;