有没有办法表示YAML文档中多行上没有任何空格的长字符串?

时间:2011-06-07 16:18:54

标签: string yaml

说我有以下字符串:

"abcdefghijklmnopqrstuvwxyz"

我认为我的YAML文件中的一行太长了,有没有办法将它分成几行?

>-
    abcdefghi
    jklmnopqr
    stuvwxyz

会导致"abcdefghi jklmnopqr stuvwxyz"接近,但不应该有任何空格。

2 个答案:

答案 0 :(得分:25)

使用双引号,并转义换行符:

"abcdefghi\
jklmnopqr\
stuvwxyz"

答案 1 :(得分:6)

杰西的回答有些微妙之处。

YAML(与许多编程语言一样)以不同的方式处理单引号和双引号。请考虑以下文档:

regexp: "\d{4}"

这将无法解析错误,例如:

  

在第1行第9列解析引号时发现了未知的转义字符

将其与:

进行比较
regexp: '\d{4}'

哪个会正确解析。为了在双引号字符串中使用反斜杠字符,您需要转义它们,如:

regexp: "\\d{4}"

我还想强调史蒂夫关于单引号字符串的评论。请考虑以下文档:

s1: "this\
  is\
  a\
  test"

s2: 'this\
  is\
  a\
  test'

解析后,您会发现它等同于:

s1: thisisatest
s2: "this\\ is\\ a\\ test"

这是YAML将单引号字符串视为文字的直接结果,而双引号字符串则受转义字符扩展的影响。