請注意,這個問題是類似像this one,但仍然是不同的,這樣這些問題的答案將不解決我的問題:如何在多行中打斷一個字符串並在YAML中保留空格?
- 對於像例如控制字符插入
\x08
,似乎我不得不用雙引號"
。 - 所有空間需要保持完全按照給定。對於換行符,我明確使用
\n
。
我有我需要在YAML來存儲一些字符串數據,例如:
" This is my quite long string data "
"This is my quite long string data"
"This_is_my_quite_long_string_data"
"Sting data\nwhich\x08contains control characters"
,需要它YAML作爲一些東西像這樣:
Key: " This is my" +
" quite long " +
" string data "
這是沒有問題的,只要我留在同一行,但我不知道如何把字符串內容爲多行。
YAML塊標樣式(>
,|
)將不會在這裏幫助,因爲他們不允許逃跑,他們甚至做一些空白剝離,換行/空間取代了是沒有用我的情況。
看來,只有這樣,好像是用雙引號"
和反斜線\
,像這樣:
Key: "\
This is \
my quite \
long string data\
"
如預期YAML online parser結果"This is my quite long string data"
嘗試這個。
但是,如果「亞行」之一,擁有領先的空間,這樣它不幸失敗:
Key: "\
This is \
my quite\
long st\
ring data\
"
這導致"This is my quitelong string data"
,去掉的話quite
和這個例子的long
之間的空間。這使我的頭腦解決的唯一的事情,是\x20
這樣來代替每個子行的第一個前導空格:
Key: "\
This is \
my quite\
\x20long st\
ring data\
"
至於我會選擇YAML有一個最佳的人類可讀的格式,我覺得\x20
有點難看的解決方案。也許有人知道更好的方法?
爲了保持人類的可讀性,我也不希望爲此使用!!binary
。
你能想出一個標題和第一段,使其更明確爲什麼這不是你鏈接到的現有問題的重複?特別是,對於你的情況,什麼是特殊的,[最廣泛的答案](https://stackoverflow.com/a/21699210/157957)中的技術都不適用?我想可能你的實際問題是「如何保留多行字符串中的前導空格?」或類似的東西。 – IMSoP
完成。將對其他問題的引用移至第一段,並在標題中插入「保留空格」。 – Joe