2016-08-30 3 views
0

У меня есть массив как это:Rspec Массив матч частичная строка с отметкой времени

["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] 

И мне нужно, чтобы соответствовать значение для этого значения только "2016-09-08 00:00:00"

Как я могу это сделать?

+0

Вы просто хотите проверить, если он находится внутри? затем используйте '.include?' –

ответ

0

Сначала конвертировать все даты в Strings

Затем после того, как установить его в переменной 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"...

я заметил, все даты типа вы хотели, чтобы проверить есть -0500 так что вы можете извлеките эту часть путем петли в массиве с этим

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

Теперь вы можете просто использовать .include?("stuff here")

+0

Его всегда Последние 5 цифр, так как вы можете нарезать последние 5 вместо –

+0

Смотрите это http://stackoverflow.com/questions/4486709/how-do-i-remove-substring-after-a -contain-character-in-a-string-using-ruby, вы узнаете много. –

0

Если у вас есть:

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