我有一个如下所示的数组:
[
[
"["", "Mrs. Brain Bauch", "Vernice Ledner"]",
"["", "Robb Ratke", "Amaya Jakubowski"]",
"["", "Lindsey Cremin III", "Harvey Fisher"]",
"["", "Daniela Schneider", "Benny Schumm"]"
]
]
如何将其转换为如下所示的阵列结构:
[
[
["Mrs. Brain Bauch", "Vernice Ledner"],
["Robb Ratke", "Amaya Jakubowski"],
["Lindsey Cremin III", "Harvey Fisher"],
["Daniela Schneider", "Benny Schumm"]
]
]
require 'json'
input = [[
"["", "Mrs. Brain Bauch", "Vernice Ledner"]",
"["", "Robb Ratke", "Amaya Jakubowski"]",
"["", "Lindsey Cremin III", "Harvey Fisher"]",
"["", "Daniela Schneider", "Benny Schumm"]"
]]
[input.first.map { |l| JSON.parse l }.map { |a| a.reject &:empty? }]
#⇒ [[
# ["Mrs. Brain Bauch", "Vernice Ledner"],
# ["Robb Ratke", "Amaya Jakubowski"],
# ["Lindsey Cremin III", "Harvey Fisher"],
# ["Daniela Schneider", "Benny Schumm"]
# ]]
如果arr
是您的数组:
r = /
(?<=") # match `"` in a positive lookbehind
[A-Z] # match a capital letter
[a-z.s]+ # match a letter, period or space one or more times
/ix # case-insenitive (i) and free-spacing (x) regex definition modes
[arr.first.map { |s| s.scan r }]
#=> [[["Mrs. Brain Bauch", "Vernice Ledner"],
# ["Robb Ratke", "Amaya Jakubowski"],
# ["Lindsey Cremin III", "Harvey Fisher"],
# ["Daniela Schneider", "Benny Schumm"]]]