如何从数组的值中删除反斜杠

时间:2017-11-21 17:01:11

标签: ruby-on-rails ruby

我有以下类型的数组

  • ["def, \" \""]
  • ["abc,\" \",def"]

如何检查\的价值是否正确,并按如下方式正确转换?

  • ["def", " "]
  • ["abc", " ", "def"]

我一直在尝试使用它来纠正它们 join(',') delete('\"') split(', ') 但没有运气

1 个答案:

答案 0 :(得分:1)

当你写:

input = "{ \"foo\": \"bar\", \"num\": 3}"

存储在输入中的实际字符串是:

{ "foo": "bar", "num": 3}

逃脱\"这里由Ruby解析器解释,因此它可以区分字符串的边界(最左边和最右边的#34;)和普通字符"在一个字符串(逃脱的)。

String#delete删除指定第一个参数的字符集,而不是模式。将删除第一个参数中的所有字符。所以通过写作

input.delete('\\"')

你有一个包含所有\和"的字符串从输入中删除,而不是包含所有\"从输入中删除序列。这对你的情况是错误的。一段时间后它可能会导致意外行为。