Существует массив test_array
, который содержит разделение по строкам с помощью .split(' ')
. Таким образом, последний символ каждого элемента может быть '.'
, '-'
, '!'
и любым другим неглавным типом. Цель состоит в том, чтобы вставить этот символ в массив как отдельный элемент после его источника и удалить этот символ из его источника.Вставка специальной последней строки элемента массива в отдельный элемент массива
l=0
test_array= @test.source.split(' ')
test_array. each do |f|
if f[-1]== /[^\w]/
test_array.insert(l+1, f[-1])
f=f.chop
l+=1
else
l+=1
end
end
/[^\w]/
является регулярным выражением любого не-символа слова.
По какой-то причине он не работает. Попытка отладки в течение часа и никакого решения.
UPD Например, вход:
[ "The" "образец", "является", "обычно", "а", "Regexp ;
", "если :
" ]
Вывод должен быть:
[ "The" "образец", "является", "обычно", "а", "Regexp" , ";
", "если" , ":
" ]
Можете ли вы привести пример ввода, который вы даете ему, ожидаемый результат и вывод, который вы получаете? – varatis
отредактированный вопрос –
BTW '\ W' - это более простой способ сказать' [^ \ w] 'в regexp. – dbenhur