忽略转义的多行引号
Ignore escaped multi-line quotes
我想使用 Dart PetitParser 解析 GraphQL 文档。
为了能够支持 BlockString(多行字符串),我正在寻找一种方法来获取
来自
"""
abc
\"""
def
"""
这部分出来了
abc
\"""
def
完整语法https://facebook.github.io/graphql/draft/#sec-String-Value
我在移动设备上 Phone,我没有电脑可以测试,但按照这些思路应该可以工作:
string('"""') & (string(r'\"""') | any()).starLazy(string('"""')) & string('"""')
这会解析三重引号,然后是转义的三重引号或其他字符的任何序列,直到我们到达结尾的三重引号。可能你还想在内部添加一个 .flatten()
以获得一个纯字符串作为 return 值。
我想使用 Dart PetitParser 解析 GraphQL 文档。 为了能够支持 BlockString(多行字符串),我正在寻找一种方法来获取
来自
"""
abc
\"""
def
"""
这部分出来了
abc
\"""
def
完整语法https://facebook.github.io/graphql/draft/#sec-String-Value
我在移动设备上 Phone,我没有电脑可以测试,但按照这些思路应该可以工作:
string('"""') & (string(r'\"""') | any()).starLazy(string('"""')) & string('"""')
这会解析三重引号,然后是转义的三重引号或其他字符的任何序列,直到我们到达结尾的三重引号。可能你还想在内部添加一个 .flatten()
以获得一个纯字符串作为 return 值。