Ruby:将转义字符串写入 YAML

2023-11-25

下列...

require 'yaml'
test = "I'm a b&d string"
File.open('test.yaml', 'w') do |out|
  out.write(test.to_yaml)
end

...输出...

--- this is a b&d string

我怎样才能让它输出

--- 'this is a b&d string'

???


如果你想在 YAML 中存储转义字符串, 使用转义#inspect在将其转换为 YAML 之前:

irb> require 'yaml'
=> true
irb> str = %{This string's a little complicated, but it "does the job" (man, I hate scare quotes)}
=> "This string's a little complicated, but it \"does the job\" (man, I hate scare quotes)"
irb> puts str
This string's a little complicated, but it "does the job" (man, I hate scare quotes)
=> nil
irb> puts str.inspect
"This string's a little complicated, but it \"does the job\" (man, I hate scare quotes)"
=> nil
irb> puts str.to_yaml
--- This string's a little complicated, but it "does the job" (man, I hate scare quotes)
=> nil
irb> puts str.inspect.to_yaml
--- "\"This string's a little complicated, but it \\\"does the job\\\" (man, I hate scare quotes)\""
=> nil

除非必要,否则 YAML 不会引用字符串。如果字符串包含未加引号存储时会丢失的内容,则它会引用字符串 - 例如周围的引号字符或尾随或前导空格:

irb> puts (str + " ").to_yaml
--- "This string's a little complicated, but it \"does the job\" (man, I hate scare quotes) "
=> nil
irb> puts %{"#{str}"}.to_yaml
--- "\"This string's a little complicated, but it \"does the job\" (man, I hate scare quotes)\""
=> nil
irb> puts (" " + str).to_yaml
--- " This string's a little complicated, but it \"does the job\" (man, I hate scare quotes)"
=> nil

但是,作为 YAML 使用者,字符串是否被引号对您来说并不重要。您永远不应该自己解析 YAML 文本 - 将其留给库。如果你needYAML 文件中要引用的字符串,这对我来说很糟糕。

无论您的字符串中是否包含“&”,YAML 都会保留该字符串:

irb> test = "I'm a b&d string"
=> "I'm a b&d string"
irb> YAML::load(YAML::dump(test))
=> "I'm a b&d string"
irb> YAML::load(YAML::dump(test)) == test
=> true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:将转义字符串写入 YAML 的相关文章

随机推荐

  • 如何将名为“file[]”的发布数据绑定到 MVC 模型?

    我在用Redactor作为一个 HTML 编辑器 它有一个用于上传图像和文件的组件 Redactor 负责客户端部分 我需要提供服务器端上传功能 如果我使用的话 上传工作没有问题Request Files在控制器中 但我想将发布的文件绑定到
  • 如何将 Spring bean 注入 JSF 转换器 [重复]

    这个问题在这里已经有答案了 我需要将 Spring bean 注入 JSF Primefaces 转换器 我尝试使用 EL 解析器注入 beans 然而 豆子是null转换器内部 我的 JSF 转换器 public class Depart
  • 将整个目录内容复制到另一个目录? [复制]

    这个问题在这里已经有答案了 在java或groovy中将整个目录内容复制到另一个目录的方法 FileUtils copyDirectory 复制整个目录 到保存文件的新位置 日期 该方法复制 指定目录及其所有子目录 到指定的目录和文件 目的
  • 使用 Angular2 TestBed 来模拟具有非具体类接口参数的服务

    我正在尝试使用 TestBed 设置和测试一个组件 该组件包含一个类 该类在构造函数中具有一个参数 该参数是接口 而不是具体类 我选择使用的任何类 无论是真实的类 还是用于单元测试的 mok 类 都可以满足此接口 但是 当我在 TestBe
  • 将用户设置存储到应用程序文件夹中

    我正在使用 C 应用程序中的设置 如下所示 String str Properties Settings Default SETTINGS NAME 当我保存此设置时 会在以下位置创建一个设置文件 C Documents and Setti
  • jQuery 同位素过滤器没有项目?

    我使用同位素来过滤具有多个过滤器的列表 其中根据某些过滤器的组合 可能不会显示任何项目 在这种情况下 我想向用户显示一条消息 根据他们的过滤器参数 不存在结果 我该如何解决这个问题 同位素是否有内置的东西来处理这个问题 这是一个 jsfid
  • 如何通过注册表确定 32 位 Visual Studio 2013 可再发行组件是否已可靠地安装在用户计算机上?

    我在用部署大师使用 Qt 为用 C 编写的 32 位 Windows 应用程序构建安装程序 可执行文件依赖于 Visual Studio 2013 可再发行组件 即32 位 Visual Studio 2013 可再发行版必须由最终用户在运
  • Ember.js 将现有记录克隆到存储中

    我正在努力思考 Ember js 会喜欢的概念 我想要的是以下内容 我现在有一个现有的 Ember 数据模型 名为Article 让我们说id共 1 个将显示在 article 1 当用户点击 新建 按钮时 他们将转换到 article n
  • 如何在 tkinter 窗口顶部添加问号 [?] 按钮

    我想为我的 python tkinter 项目创建一个窗口 该窗口顶部有一个问号按钮 如下所示 无论如何我可以做到这一点吗 我想我已经成功了 from PIL import Image ImageTk import tkinter as t
  • 哪个 haskell 库可以让我将 2D 数组/向量保存到 png/jpg/gif... 文件?

    我正在玩哈斯克尔 从简单的绘图程序开始 以弄湿我的脚 我需要一个库 可以让我将 2D 数组 向量保存到图像文件中 我不想写颜色列表 我想使用用于数组 向量之类的计算的容器 并且可以 嗯 almost 自动并行化 EDIT存储彩色图像的能力是
  • ModelForm 中的 DurationField 格式

    我有一个包含持续时间字段的 Django 模型 class Entry models Model duration models DurationField 我想使用 ModelForm 为该模型渲染一个表单 class EditEntry
  • 为什么 hash() 在 python3.4 下比 python2.7 慢

    我正在使用 timeit 进行一些性能评估 发现 python 2 7 10 和 python 3 4 3 之间的性能下降 我把范围缩小到hash 功能 蟒蛇2 7 10 gt gt gt import timeit gt gt gt ti
  • 在网页中添加Google搜索

    我想向静态网站添加搜索 最简单的方法是通过将 site www acme com 附加到实际查询中来简单地查询 Google 以便 Google 将搜索限制到该网站 理想情况下 我想在浏览器中执行此操作 以避免在服务器上安装 PHP 使用表
  • PySpark 根据名称将列表分解为多列

    您好 我正在处理一种稍微困难的文件格式 我正在尝试清理该格式以供将来处理 我一直在使用 Pyspark 将数据处理成数据帧 该文件看起来类似于 AA 1234 ZXYW BB A 890 CC B 321 AA 1234 LMNO BB D
  • 将文件夹从主包复制到 iPhone 中的文档目录

    我有一个应用程序 其中我的主包中有一个名为 Images 的文件夹 在此文件夹中还有另一个名为 Images1 的文件夹 其中包含一些图像 当我的应用程序启动时 我想要文档目录中的文件夹 图像 我想从文件夹 Images1 中获取图像 但我
  • 弦乐实习

    在下面的代码中 我正在检查对象引用的相等性 string x Some Text string y Some Other Text string z Some Text Console WriteLine object ReferenceE
  • 转换为 ARC - LLVM 编译器 3.0 错误

    我打开了我的一个旧项目并选择Convert to Objective C ARC从编辑 重构菜单 我收到以下错误 Apple LLVM compiler 3 0 Error Error in format of file Users myU
  • XPath:从子节点获取父节点

    我需要获取子节点的父节点title 50 目前我只使用 title 50 我怎样才能得到它的父母 结果应该是store node
  • 如何使用 Webpack 和 Angular2 包含外部 css 文件?

    我正在尝试使用 Webpack 添加对 Angular2 中 CSS 文件的外部引用 我的CSS定义为 test css loader style loader css loader 在我的 webpack config js 文件中 在打
  • Ruby:将转义字符串写入 YAML

    下列 require yaml test I m a b d string File open test yaml w do out out write test to yaml end 输出 this is a b d string 我怎