2

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

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

这部分出来

abc
\"""
def

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

4

1 回答 1

2

我在手机上,没有要测试的电脑,但是这些方面的东西应该可以工作:

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

这会解析三引号,然后是转义的三引号或其他字符的任何序列,直到我们到达结尾的三引号。可能您还想.flatten()在内部添加 a 以获取纯字符串作为返回值。

于 2018-11-01T07:58:33.400 回答