我想使用Dart PetitParser解析GraphQL文档。 为了能够支持BlockString(多行字符串),我正在寻找一种获取方法
来自
"""
abc
\"""
def
"""
这部分出来
abc
\"""
def
完整语法https://facebook.github.io/graphql/draft/#sec-String-Value
答案 0 :(得分:1)
我在移动电话上,没有电脑可以测试,但是符合以下要求的东西应该可以工作:
string('"""') & (string(r'\"""') | any()).starLazy(string('"""')) & string('"""')
这将解析三重引号,然后解析转义的三重引号或其他字符的任何序列,直到到达结尾的三重引号。可能还需要在内部添加一个.flatten()
,以获取纯字符串作为返回值。