代码之家  ›  专栏  ›  技术社区  ›  Günter Zöchbauer

忽略转义的多行引号

  •  1
  • Günter Zöchbauer  · 技术社区  · 6 年前

    我想用Dart-PetitParser解析GraphQL文档。 为了能够支持BlockString(多行字符串),我正在寻找一种

    """
    abc
    \"""
    def
    """
    

    把这部分拿出来

    abc
    \"""
    def
    

    完整语法 https://facebook.github.io/graphql/draft/#sec-String-Value

    1 回复  |  直到 6 年前
        1
  •  2
  •   Lukas Renggli    6 年前

    我用的是手机,没有电脑可供测试,但应该有以下方法:

    string('"""') & (string(r'\"""') | any()).starLazy(string('"""')) & string('"""')
    

    这将解析三个引号,后跟转义的三个引号或其他字符的任何序列,直到到达结尾的三个引号。可能还需要添加 .flatten() 以获取一个普通字符串作为返回值。

    推荐文章