如何在YAML中跨行拆分长字符串且不引入额外空白字符
答案
存在满足需求的YAML语法,最常用的实现方式是双引号字符串+行尾反斜杠,在YAML 1.1及以上标准均支持该特性。
写法示例
你需求的场景可以按如下格式编写YAML:
example: string1: "Oneverylongunbrokenlinethatmustnotcon\ tainanyresultingwhitespaceintheoutput"
原理说明
双引号包裹的字符串中,行尾的反斜杠会忽略当前行的换行符,以及下一行开头的所有缩进字符,直接拼接两行的有效内容,不会插入任何额外的空格、换行等空白字符。解析后输出的结果完全符合你的预期:
{ "example": { "string1": "Oneverylongunbrokenlinethatmustnotcontainanyresultingwhitespaceintheoutput" } }
注意事项
- 必须使用双引号包裹字符串,单引号、无引号字符串中的行尾反斜杠会被识别为普通字符保留,不会触发转义拼接效果
- 反斜杠必须严格放在上一行的末尾,后面不能加空格或其他字符
- 下一行的内容可以按格式正常缩进,所有缩进都会被自动忽略,不会计入最终字符串
内容的提问来源于stack exchange,提问作者Alex Spurling
相关产品推荐
相关产品推荐

