2016-08-30 4 views
0

Ich habe ein Array wie folgt:Rspec Array Match Teilstring Zeitstempel

["xxxxxxxxx", 448, "2016-08-29", 1, "Trading", 53, "Trading", 2016-06-03 00:00:00 -0500, 2016-06-03 00:00:00 -0500, "RBS", "USD", "United States Dollar", nil, 2016-10-08 00:00:00 -0500, 2016-09-08 00:00:00 -0500, "2016-09-08 00:00:00 -0500","lcz076", nil, 5, 2016-10-08 00:00:00 -0500, 2016-09-08 00:00:00 -0500, "9", 448, "P", nil] 

Und ich brauche nur für diesen Wert einen Wert übereinstimmen "2016-09-08 00:00:00"

Wie kann ich das tun?

+0

Wollen Sie nur prüfen, ob es im Inneren ist? dann verwenden '.include?' –

Antwort

0

Zuerst konvertieren alle Termine in Strings

Dann gesetzt, nachdem es auf eine Variable a

a = ["xxxxxxxxx", 448, "2016-08-29", 1, "Trading", 53, "Trading", "2016-06-03 00:00:00 -0500, 2016-06-03 00:00:00 -0500"...

ich von Ihnen gewünschten Termin des Typs bemerkt, dass Sie haben -0500 überprüfen wollte, so dass Sie Nehmen Sie diesen Teil heraus, indem Sie das Array mit diesem

new_str[i] = str.slice(0..(str.index('-0500')))

loopen

Jetzt können Sie nur .include?("stuff here")

+0

Es immer die letzten 5 Ziffern so wie schneidet man die letzten 5 statt –

+0

Siehe http://stackoverflow.com/questions/4486709/how-do-i-remove-substring-after-a -Verschiedene-Zeichen-in-Zeichen-Verwendung-Ruby, Sie werden viel lernen. –

0

verwenden Sie haben Angenommen:

Erwartung sein sollte
a = ["xxxxxxxxx", 448, "2016-08-29", 1, "Trading", 53, "Trading", "2016-06-03 00:00:00 -0500", "2016-06-03 00:00:00 -0500", "RBS", "USD", "United States Dollar", nil, "2016-10-08 00:00:00 -0500", "2016-09-08 00:00:00 -0500", "2016-09-08 00:00:00 -0500", "lcz076", nil, 5, "2016-10-08 00:00:00 -0500", "2016-09-08 00:00:00 -0500", "9", 448, "P", nil] 

RSpec:

matches = a.select{ |x| x.to_s.match("2016-09-08 00:00:00") } 
expect(matches).not_to be_empty