在 YAML 中转义冒号

Posted

技术标签:

【中文标题】在 YAML 中转义冒号【英文标题】:Escaping colons in YAML 【发布时间】:2013-01-30 03:51:06 【问题描述】:

有人知道如何吗?我的 yml 中的关键是 带有端口号的域,但 yml 文件不适用于此设置:

###BEGIN
production:
### THIS IS THE ONE I'm HAVING TROUBLE WITH ###
8.11.32.120:8000: GoogleMapsKeyforThisDomain
exampledomain.com: GoogleMapsAPIKeyforThatDomain

development:
 GoogleMapsAPIKeyforDevelopmentDomain
###END

我正在使用一个名为 YM4R 的谷歌地图插件,它使用 .yml 文件 根据我的应用所在的位置选择不同的 Google Maps API 密钥 正在托管...

所以,我正在尝试制作8.11.32.120:8000 the key。知道怎么做 这? (如果你关心,它在 gmaps_api_key.yml 文件中)

【问题讨论】:

双引号是否按照this *** answer 工作? 带引号的作品,你是在告诉我这是逃避它的唯一方法吗? 那里有关于using double-quotes to escape colons in values 的信息,但是除了a Ruby Forum post where this same question was asked back in 2007 之外,我还没有看到任何与转义键中的冒号有关的信息,那里的建议也是双引号钥匙。所以,我猜你可以只用双引号,也可以用双引号,也可以同时用键和值。 我看到了那个帖子,只是想用其他方法来做。 【参考方案1】:

您需要在遇到问题的键周围加上引号。即:

"8.11.32.120:8000": GoogleMapsKeyforThisDomain

【讨论】:

使用引号,我们不能用其他方式吗? 我还没有遇到任何其他的方法,抱歉。 我在 html 实体方面取得了成功(例如“:”) 只是出于好奇:为什么你想要另一种方式? 因为这不起作用:- sed -i "s/driver: .*/driver: pdo_$DB/" etc/config.yaml【参考方案2】:

以另一种方式回答列表项的评论,例如:

- sed -i "s/driver: .*/driver: pdo_$DB/" etc/config.yaml

就是把它们写成:

- >-
  sed -i "s/driver: .*/driver: pdo_$DB/" etc/config.yaml

或作为:

- 'sed -i "s/driver: .*/driver: pdo_$DB/" etc/config.yaml'

【讨论】:

以上是关于在 YAML 中转义冒号的主要内容,如果未能解决你的问题,请参考以下文章

Flutter/Dart Uri 没有在 URL 中转义冒号“:”

如何转义 YAML 字符串中的冒号和其他特殊字符?

如何在 AWS CloudFormation YAML 模板中转义策略变量

在 Spring Boot 中的 Yaml 中转义 Map 键中的点

yaml语法三大规则

yaml语法三大规则