gpt4 book ai didi

string - 如何在多行上拆分字符串并在 YAML 中保留空格?

转载 作者:行者123 更新时间:2023-12-01 01:49:04 26 4
gpt4 key购买 nike

请注意,该问题类似于 this one ,但仍然不同,因此这些答案无法解决我的问题:

  • 用于插入控制字符,例如\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为了这。

    最佳答案

    而不是 \x20 ,您可以简单地转义该行的第一个非缩进空间:

    Key: "\
    This is \
    my quite\
    \ long st\
    ring data\
    "

    这适用于多个空格,您只需要转义第一个空格。

    关于string - 如何在多行上拆分字符串并在 YAML 中保留空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46060460/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com