忽略转义的多行引号

时间:2018-10-31 16:38:53

标签: dart petitparser

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

来自

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

这部分出来

abc
\"""
def

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

1 个答案:

答案 0 :(得分:1)

我在移动电话上,没有电脑可以测试,但是符合以下要求的东西应该可以工作:

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

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