に文字列の内側の二重引用符を置き換えます私は、配列内の文字列を持つ配列
["foo","bar","foo"bar"baz"]
私は、この文字列の配列を形成するためにeval
メソッドを使用していますが、内側の二重引用符がエスケープされていません。
eval('["foo","bar","foo"bar"baz"]') # => SyntaxError
配列要素内のものだけをエスケープする方法はありますか?
に文字列の内側の二重引用符を置き換えます私は、配列内の文字列を持つ配列
["foo","bar","foo"bar"baz"]
私は、この文字列の配列を形成するためにeval
メソッドを使用していますが、内側の二重引用符がエスケープされていません。
eval('["foo","bar","foo"bar"baz"]') # => SyntaxError
配列要素内のものだけをエスケープする方法はありますか?
私は私はあなたがこれは、すべての可能な変形のために働くかもしれない
または '.gsub(/ \ b" \ b /、 '\ "')' –
ええ、これははるかに優雅な解決です –
残念ながら、すべてのケースを修正するわけではありません。 "[" foo "、" foo "b ar" baz "、" "" ""] ''の場合はどうでしょうか? –
を意味しているものを得た場合、あなたが
eval('["foo","bar","foo"bar"baz"]'.gsub(/(\w)\"(\w)/, '\1\"\2'))
ような何かを試すことができると思います。これはコンマや角かっこの近くに表示される以外のすべての引用符を修正します
.gsub(/(?<!\,)(?<!\[)(?<!\])\"(?!\,)(?!\[)(?!\])/, '\"')
パターンを書き込もうとしましたか?あなたの試行を共有してください。 –
結果として得たいものを教えてください。 –
@WiktorStribiżew私はこれを試しています。https://repl.it/CdvP/1 –