2016-05-03 16 views
1

の配列内の特殊文字を削除します。arrは、あなたの配列である場合以下に示すように、私は配列を持つルビー

[ 
    [ 
    ["Mrs. Brain Bauch", "Vernice Ledner"], 
    ["Robb Ratke", "Amaya Jakubowski"],  
    ["Lindsey Cremin III", "Harvey Fisher"], 
    ["Daniela Schneider", "Benny Schumm"] 
    ] 
] 
+0

外側[]結果それはあなたの意図ですか? –

+0

@KeithBennettあり –

+0

最初のサンプルコードの後ろにスラッシュがいくつか表示されていますが、実際には2番目のサンプルコードで配列を出力しています。 –

答えて

5
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"] 
#  ]] 
+0

私よりも優れています!配列ネストのレベルがもう1つあることに注意してください。 btw、あなたは 'require 'json''をRailsで必要としますか? –

+0

いいえ、Rails 'require 'json''は必要ではありませんが、とにかくそれを追加します。 – mudasobwa

+0

@mudasobwaこれも私のために働いた。これはより良い実装なので、私はこれを私の答えとして受け入れています –

4

:私は、これは、以下に示す配列構造に変換するにはどうすればよい

[ 
    [ 
    "[\"\", \"Mrs. Brain Bauch\", \"Vernice Ledner\"]", 
    "[\"\", \"Robb Ratke\", \"Amaya Jakubowski\"]",  
    "[\"\", \"Lindsey Cremin III\", \"Harvey Fisher\"]", 
    "[\"\", \"Daniela Schneider\", \"Benny Schumm\"]" 
    ] 
] 

:で

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"]]] 
+0

ちょっとキャリー!これは私のために働いた。 –

+1

Ahkshaey、私はあなたがこれを助けてくれてうれしいですが、うれしいです。質問を投稿してからわずか20分で私の回答を選択しました。それは、他の回答を妨げる可能性があります。これはもっと面白いかもしれませんが、読者の中にはまだ答えを出している人がいれば、投稿する時間を与えるべきです。私の忠告は、今のところ緑茶を取り除き、選択する前に少なくとも2時間待つことです。 –

関連する問題