我有以下类型的数组
["def, \" \""]
["abc,\" \",def"]
如何检查\
的价值是否正确,并按如下方式正确转换?
["def", " "]
["abc", " ", "def"]
我一直在尝试使用它来纠正它们
join(',')
delete('\"')
split(', ')
但没有运气
答案 0 :(得分:1)
当你写:
input = "{ \"foo\": \"bar\", \"num\": 3}"
存储在输入中的实际字符串是:
{ "foo": "bar", "num": 3}
逃脱\"这里由Ruby解析器解释,因此它可以区分字符串的边界(最左边和最右边的#34;)和普通字符"在一个字符串(逃脱的)。
String#delete删除指定第一个参数的字符集,而不是模式。将删除第一个参数中的所有字符。所以通过写作
input.delete('\\"')
你有一个包含所有\和"的字符串从输入中删除,而不是包含所有\"从输入中删除序列。这对你的情况是错误的。一段时间后它可能会导致意外行为。