我想用Dart-PetitParser解析GraphQL文档。 为了能够支持BlockString(多行字符串),我正在寻找一种
从
""" abc \""" def """
把这部分拿出来
abc \""" def
完整语法 https://facebook.github.io/graphql/draft/#sec-String-Value
我用的是手机,没有电脑可供测试,但应该有以下方法:
string('"""') & (string(r'\"""') | any()).starLazy(string('"""')) & string('"""')
这将解析三个引号,后跟转义的三个引号或其他字符的任何序列,直到到达结尾的三个引号。可能还需要添加 .flatten() 以获取一个普通字符串作为返回值。
.flatten()