如何从ruby中包含数组的字符串中删除反斜杠

Pre*_*rem 2 ruby

我有这样的字符串

a="[\"6000208900\",\"600020890225\",\"600900231930\"]"
#expected result [6000208900,600020890225,600900231930]
Run Code Online (Sandbox Code Playgroud)

我试图从字符串中删除反斜杠.

a.gsub!(/^\"|\"?$/, '')
Run Code Online (Sandbox Code Playgroud)

Aru*_*hit 5

在双引号string("")中,必须转义另一个双引号\.你无法删除它.

使用puts,你可以看到它不存在.

a = "[\"6000208902912790\"]"
puts a # => ["6000208902912790"]
Run Code Online (Sandbox Code Playgroud)

或者使用JSON

irb(main):001:0> require 'json'
=> true
irb(main):002:0> a = "[\"6000208902912790\"]"
=> "[\"6000208902912790\"]"
irb(main):003:0> b = JSON.parse a
=> ["6000208902912790"]
irb(main):004:0> b
=> ["6000208902912790"]
irb(main):005:0> b.to_s
=> "[\"6000208902912790\"]"
Run Code Online (Sandbox Code Playgroud)

更新(根据OP的最后编辑)

irb(main):002:0> a = "[\"6000208900\",\"600020890225\",\"600900231930\"]"
=> "[\"6000208900\",\"600020890225\",\"600900231930\"]"
irb(main):006:0> a.scan(/\d+/).map(&:to_i)
=> [6000208900, 600020890225, 600900231930]
irb(main):007:0>
Run Code Online (Sandbox Code Playgroud)