Parsing YAML如何解释特殊字符
所以,我试图用YAML编写一个插件配置文件,但我的解析器抛出了错误,尽管所有内容的格式似乎都正确。YAML网站没有什么帮助,我发现的唯一一个教程是docs.ansible.com/ansible/YAMLSyntax.html上的零散教程。由于缺乏YAML语法知识,我可能在语法中遗漏了一些愚蠢的东西,每个YAML特殊字符都做什么 以下是我行为不端的YAML文件供参考:Parsing YAML如何解释特殊字符,parsing,syntax,yaml,Parsing,Syntax,Yaml,所以,我试图用YAML编写一个插件配置文件,但我的解析器抛出了错误,尽管所有内容的格式似乎都正确。YAML网站没有什么帮助,我发现的唯一一个教程是docs.ansible.com/ansible/YAMLSyntax.html上的零散教程。由于缺乏YAML语法知识,我可能在语法中遗漏了一些愚蠢的东西,每个YAML特殊字符都做什么 以下是我行为不端的YAML文件供参考: EnforcedWorlds:| - World - Nether - DIM-1 - End - DIM1
EnforcedWorlds:|
- World
- Nether
- DIM-1
- End
- DIM1
Ignore List:|
- CuckooClock5000
- Venomous Potato
- Subtle Snail
Radius: 10
DisallowInRadius:|
- Sandstone => "Darude Sandstone!"
- Quarry (1040) => "This block is too L33T 4U 2 Use here :)"
- Minium Stone (20102 with datavalues 1 to 1520) => "Minimum Minium area!"
Command Output groups:
Mod:|
- Perm Node: gpu.mod
- (Light Green) $(Banner)
- (Teal) Command A
- (Pink) Command B
Admin:|
- Perm Node: gpu.admin
- (Light Red) $(Banner)
- Mod lines 2-3
- (Blue) Command C
- (Bold)
Owner:|
- Mod lines 1-3
- Admin line 2
YAML不需要引用大多数字符串,但如果特殊字符在特定的字符列表中,则需要引用它们。如果您的值包含以下任何特殊字符(例如:,{,},[,],&,*,#,?,|,-,=,!,%,@),请使用引号。YAML语法无效不是因为字符,而是因为缺少空格:
EnforcedWorlds:|
这整行是一条线。您希望它是一个映射键(EnforcedWorlds
),后跟块标量的头(|
)。要使其工作,必须在冒号后添加空格:
EnforcedWorlds: |
但我不确定这是否真的是你想要的。它将以下所有缩进更多的行解析为文字字符串(保留换行符)。但是内容看起来像YAML序列,所以您可能希望这样编写:
EnforcedWorlds:
- World
- Nether
- DIM-1
- End
- DIM1
这里,值将被解析为标量项序列
要查看如何解析输入,可以使用一些web服务:
- (YAML 1.2参考解析器)
- (皮亚马尔)
- (尼米亚姆)
还有一个交互式YAML shell,用于使用Perl进行测试。请注意,PyYAML在线解析器是PyYAML 1.1