gpt4 book ai didi

scala - 使用 Parboiled 提取双引号字符串内容

转载 作者:行者123 更新时间:2023-12-03 14:59:44 34 4
gpt4 key购买 nike

我正在编写一个解析器,其中一个部分应该匹配并检索双引号字符串内容
它只产生引号,而不是整个字符串。对于未引用的,一切正常

这是相应的规则:

def doubleQuoted: Rule1[StringWrapper] = rule { //same for singlequoted
"\"" ~ zeroOrMore( noneOf("\"\\") | ("\\" ~ "\"") ) ~ "\"" ~> StringWrapper
}

问题是:
  • 输入->“指令”
  • 预期输出 -> StringWrapper("\"directive\"")
  • 实际输出 -> StringWrapper("\"")
  • 最佳答案

    请注意,您可以使用 normal* (special normal*)*用于更快解析的模式。在 Java 中:

    Rule Normal()
    {
    return NoneOf("\\\"");
    }

    Rule Special()
    {
    return String("\\\"");
    }

    Rule NSN()
    {
    return Sequence(
    ZeroOrMore(Normal()),
    ZeroOrMore(Special(), ZeroOrMore(Normal()))
    );
    }

    Rule DoubleQuotedString()
    {
    return Sequence('"', NSN(), '"');
    }

    关于scala - 使用 Parboiled 提取双引号字符串内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695405/

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