说我有以下字符串:
"abcdefghijklmnopqrstuvwxyz"
Run Code Online (Sandbox Code Playgroud)
我认为我的YAML文件中的一行太长了,有没有办法将它分成几行?
>-
abcdefghi
jklmnopqr
stuvwxyz
Run Code Online (Sandbox Code Playgroud)
会导致"abcdefghi jklmnopqr stuvwxyz"
哪个接近,但它不应该有任何空格.
Jes*_*der 25
使用双引号,并转义换行符:
"abcdefghi\
jklmnopqr\
stuvwxyz"
Run Code Online (Sandbox Code Playgroud)
杰西的答案有一些微妙之处。
YAML(像许多编程语言一样)对单引号和双引号的处理方式不同。考虑以下文档:
regexp: "\d{4}"
Run Code Online (Sandbox Code Playgroud)
这将无法解析,并显示以下错误:
在第1行第9列的引用标量时发现未知的转义字符
比较一下:
regexp: '\d{4}'
Run Code Online (Sandbox Code Playgroud)
哪个将正确解析。为了在双引号字符串中使用反斜杠字符,您需要对其进行转义,如下所示:
regexp: "\\d{4}"
Run Code Online (Sandbox Code Playgroud)
我还想强调一下Steve关于单引号字符串的评论。考虑以下文档:
s1: "this\
is\
a\
test"
s2: 'this\
is\
a\
test'
Run Code Online (Sandbox Code Playgroud)
解析后,您将发现它等效于:
s1: thisisatest
s2: "this\\ is\\ a\\ test"
Run Code Online (Sandbox Code Playgroud)
这是以下事实的直接结果:YAML将单引号字符串视为文字,而双引号字符串则接受转义字符扩展。