YAML中多行字符串的配置方法总结

开发 开发工具
文字中可能出现段落,希望在配置中按段落方式编写,显示打印的时候也能出现段落换行。文字很长,为方便编辑,可能在配置文件中分段写,但是显示的时候不喜欢出现配置中的段落换行。

 [[326069]]

有时候我们会在配置文件中设置一段文字说明,这时通常会出现两种需求:

  1. 文字中可能出现段落,希望在配置中按段落方式编写,显示打印的时候也能出现段落换行。
  2. 文字很长,为方便编辑,可能在配置文件中分段写,但是显示的时候不喜欢出现配置中的段落换行。

简单的说,就是:

  1. 配置与显示,都严格按段落展示
  2. 配置按段落,显示不需要按段落

假设,我们需要配置这样一段文字:

  1. I am a coder.My blog is didispace.com. 

下面,就针对上面的两种情况来看看可以怎么来实现:

配置与显示,都严格按段落展示

这个需求下,我们希望配置和显示都按句子换行,就是这样:

  1. I am a coder. 
  2. My blog is didispace.com. 

方法一:直接使用\n来换行

这样写:

  1. string: "I am a coder.\n\ 
  2.          My blog is didispace.com." 

最终输出:

  1. I am a coder. 
  2. My blog is didispace.com. 

通过\n在显示的时候换行,通过配置行末的\让这个字符串换行继续写(这个必须有,如果没有第二行行首会多一个空格)。

注意:这里必须使用双引号来定义字符串,不能用单引号。因为单引号是不支持\n换行的。

方法二:使用|、|+、|-

在方法一种,其实我们在文字中加入了几个转义符号,其实对于阅读并不方便。在方法二中,将介绍更适合阅读的几种形式:

  1. string1: | 
  2.   I am a coder. 
  3.   My blog is didispace.com. 
  4.  
  5. string2: |+ 
  6.   I am a coder. 
  7.   My blog is didispace.com. 
  8.  
  9. string3: |- 
  10.   I am a coder. 
  11.   My blog is didispace.com. 

如上面一共有三种配置都会自动按配置中所写的换行来换行,但是在文末会有一些区别,有的会增加一个空行,有的不会,有的会新增两个空行,具体说明如下:

  • |:文中自动换行 + 文末新增一空行
  • |+:文中自动换行 + 文末新增两空行
  • |-:文中自动换行 + 文末不新增行

配置按段落,显示不需要按段落

这个需求下,我们希望配置里是按行写的,但是显示是如下面这样在一行的:

  1. I am a coder.My blog is didispace.com. 

方法一:直接在字符串中换行写

最粗暴的写法,反正不用换行,那就直接写了:

  1. string: 'I am a coder. 
  2.          My blog is didispace.com.' 

这里不论用双引号还是单引号都是可以的。因为不存在需要转移的内容,所以总体还算清晰。

方法二:使用>、>+、>-

比较好的表述方式就是使用>、>+、>-来定义,比如下面这几种:

  1. string1: > 
  2.   I am a coder. 
  3.   My blog is didispace.com. 
  4.  
  5. string2: >+ 
  6.   I am a coder. 
  7.   My blog is didispace.com. 
  8.  
  9. string3: >- 
  10.   I am a coder. 
  11.   My blog is didispace.com. 

这三种都不会对配置中的换行进行实际换行,但是依然在文末的处理会有一些小区别,具体如下:

  • >:文中不自动换行 + 文末新增一空行
  • >+:文中不自动换行 + 文末新增两空行
  • >-:文中不自动换行 + 文末不新增行

【本文为51CTO专栏作者“翟永超”的原创稿件,转载请通过51CTO联系作者获取授权】

 

戳这里,看该作者更多好文

 

责任编辑:武晓燕 来源: 51CTO专栏
相关推荐

2020-09-03 10:13:49

JavaScript字符串pad

2023-08-26 20:21:58

字符KotlinJava

2023-08-21 10:28:00

字符串字符Python

2020-10-16 18:35:53

JavaScript字符串正则表达式

2009-12-01 10:38:08

PHP字符串函数

2021-05-18 09:08:18

字符串子串对象

2009-11-24 09:55:44

PHP字符串函数

2022-05-18 11:35:17

Python字符串

2010-06-04 14:59:06

MySQL数据库

2010-05-19 14:39:12

MySQL连接字符串

2010-06-28 15:18:51

SQL Server

2010-05-25 15:51:25

MySQL连接字符串

2010-02-04 10:52:36

C++字符串分割函数

2010-04-27 12:26:21

Unix字符串

2020-08-01 16:19:13

JavaScript字符串开发

2009-09-13 21:52:16

LINQ字符串

2010-09-06 17:30:46

SQL函数

2021-09-10 08:18:31

Go语言字符串

2021-03-11 18:44:39

字符串SQL表达式

2009-11-25 09:13:41

PHP数组转字符串PHP字符串转数组
点赞
收藏

51CTO技术栈公众号