替换数组中字符串中的内部双引号

时间:2016-07-20 08:02:34

标签: ruby string escaping

我在数组中有字符串:

["foo","bar","foo"bar"baz"]

我正在使用eval方法形成一个包含此字符串的数组,但内部双引号不会被转义:

eval('["foo","bar","foo"bar"baz"]') # => SyntaxError

有没有办法只转义数组元素中的那些?

2 个答案:

答案 0 :(得分:3)

我认为你可以尝试像

这样的东西
eval('["foo","bar","foo"bar"baz"]'.gsub(/(\w)\"(\w)/, '\1\"\2'))

如果我得到了你的意思

答案 1 :(得分:1)

这可能适用于所有可能的变体。除了出现在逗号和括号旁边之外,这将修复所有引号

.gsub(/(?<!\,)(?<!\[)(?<!\])\"(?!\,)(?!\[)(?!\])/, '\"')