gpt4 book ai didi

java - 使用 ANTLR 将非贪婪序列作为字符串获取

转载 作者:行者123 更新时间:2023-12-01 14:07:56 25 4
gpt4 key购买 nike

我在将序列作为字符串获取时遇到问题。我有一个包含以下字符串的文件:

{TEXT="<div itemprop=\"content\"><div>some text</div>"}

我想获取并使用第一个引号和最后一个引号之间的文本。首先我尝试:

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

但是失败了,SEQUENCE 这样只能得到一个符号。我尝试过:

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

我得到了 token 列表,所以我无法使用 getText。

最佳答案

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

grammar Sequence;

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

ANY:.;

但是 ANTLR4 中还有其他机制,例如监听器和访问者。

关于java - 使用 ANTLR 将非贪婪序列作为字符串获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18752881/

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