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
,它总是比正则表达式更安全、更可靠。