我正在尝试从我的 GraphQL 查询中删除额外的空格和换行符,但过滤器参数中两个双引号之间的数据应该保持不变。
以下是我们 fastly 的 CDN 上接收查询的方式
# input
{"query":"query OpName {\n itemCollection (filter: { text: "aa aa aa", text2: "aa aa"}){\n group { slug\n\n\n\n text text2 } } }"}
# expected output
{"query":"query OpName { itemCollection (filter: { text: "aa aa aa", text2: "aa aa"}){ group { slug text text2 } } }"}
目标是
- 从查询中删除多余的空格
- 两个双引号之间的空格应该在 graphql 查询中保持不变(因为过滤器参数的值将用于匹配我们数据库中的记录)
我们尝试了以下方法:
\s+(?=(?:['|%22](?:\\['|%22]|[^'|%22])+['|%22]|[^'|%22])+$)
在快速文档中给出\s+(?=([^"]*"[^"]*")*[^"]*$)
但这似乎不起作用。