Ruby on rails 在ruby中删除数组中的特殊字符

Ruby on rails 在ruby中删除数组中的特殊字符,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个数组,如下所示: [ [ "[\"\", \"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\"]"
  ]
]
[
  [
    ["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\"]"
  ]
]
[
  [
    ["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"]]] 
r=/
(?[[Brain Bauch夫人”,“Vernice Ledner”],
#[“Robb Ratke”,“Amaya Jakubowski”],
#[“林赛·克雷明三世”、“哈维·费希尔”],
#[“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"]]] 
r=/
(?[[Brain Bauch夫人”,“Vernice Ledner”],
#[“Robb Ratke”,“Amaya Jakubowski”],
#[“林赛·克雷明三世”、“哈维·费希尔”],
#[“Daniela Schneider”,“Benny Schumm”]]


outer[]生成一个1的数组。这是您的意图吗?您在第一个示例代码中看到了一些后续斜杠,但实际情况是它与第二个示例代码一起输出数组。您有什么方法可以说服此数据的生产者(是您吗?)要使用更简单的数据序列化方法,如YAML或JSON?必须解析这些字符串需要做更多的工作,并且使代码比需要的更复杂。如果您还没有看过YAML或JSON,我强烈建议您看看。它们的使用非常简单。@AhkshaeyRavi如何准确地检索这些数据?可以吗是否显示代码?这似乎是一个。ActiveRecord以对象的形式返回数据。如果您获得嵌套数组的字符串表示形式,那么一定是您做了一些事情使其如此。如果您解决了这个问题,而不是浪费时间和精力分析这个不适当的表示形式,您会更高兴intation.outer[]会生成一个1的数组。这是您的意图吗?您在第一个示例代码中看到了一些后续斜杠,但实际情况是它会将数组与第二个示例代码一起输出。您有什么方法可以说服此数据的生产者(是您吗?)要使用更简单的数据序列化方法,如YAML或JSON?必须解析这些字符串需要做更多的工作,并且使代码比需要的更复杂。如果您还没有看过YAML或JSON,我强烈建议您看看。它们的使用非常简单。@AhkshaeyRavi如何准确地检索这些数据?可以吗是否显示代码?这似乎是一个。ActiveRecord以对象的形式返回数据。如果您获得嵌套数组的字符串表示形式,那么一定是您做了一些事情使其如此。如果您解决了这个问题,而不是浪费时间和精力分析这个不适当的表示形式,您会更高兴演讲。阿克谢,我很高兴你发现这很有帮助,但我很失望。你在发布问题20分钟后就选择了我的答案。这可能会阻碍其他答案,这些答案可能更好,也可能更有趣,如果一些读者仍在编写答案,你应该给他们时间发布。我的建议是暂时删除绿色部分,a然后等待至少两个小时再做出选择。阿克谢,我很高兴你发现这有帮助,但我很失望。你在发布问题后仅仅20分钟就选择了我的答案。这可能会阻碍其他答案,这些答案可能更好或只是有趣,如果一些读者仍在研究答案,你应该给他们答案我来发帖。我的建议是现在先删除greenie,至少等几个小时再做选择。比我的好!注意还有一个级别的数组嵌套。顺便说一句,你需要
require'json'
使用Rails吗?不,使用Rails时
require'json'
没有必要,但我还是会添加它,谢谢。@mudasobwa Thi这对我来说太有用了。既然这是一个更好的实现,我接受这个作为我的回答,它决不是“更好的”实现。重要的是,这种方法使用的是
JSON.parse
,它总是比正则表达式更安全、更可靠。比我的好!注意还有一个级别的数组嵌套。顺便说一句,你需要
需要'JSON'
与Rails配合使用吗?不,与Rails配合使用
需要'JSON'
是不必要的,但我会的无论如何添加它,thx。@mudasobwa这对我来说也很有效。因为这是一个更好的实现,我接受这一点作为我的答案。这决不是一个“更好”的实现。重要的是,这种方法使用了
JSON.parse
,它总是比正则表达式更安全、更可靠。