Следующий код открывает текстовый файл, немного регулярное выражение соответствует именам и номерам. Я делаю IF, так что я только сопоставляю числа, превышающие 0. Когда я пытаюсь указать имя и номер, я получаю только цифры, а имя становится нулевым. Если я помещаю имена (переменная а) перед оператором if, он есть. Что я делаю не так?Невозможно выставить несколько строк
nf = File.open("textfile.txt")
nf.each do |b|
a = b.match(/([\S]+)name([\S]+)/)
c = b.match(/[0-9]+ numbers/)
c = c.to_s.split(/ /)
c = c[0].to_i
if c > 0
puts a
puts c
end
end
текстовый файл выглядит следующим образом:
Меня зовут Марк
12432 номера
Меня зовут Джо
0 номера
Я хочу, чтобы иметь возможность ставит:
Мое имя is Mark
12432 номера
и распечатать:
Меня зовут Джо
0 номера
Заранее спасибо за вашу помощь
любые предложения по исправлению кода? – nomoreflash
@lovecode: Не перебирайте по очереди. Итерации в группах из двух строк, если вы знаете, что файл выложен таким образом. Или прочитайте весь файл в строке и используйте 'scan', чтобы найти каждое имя имени + номер. – sepp2k
Спасибо за подсказку в космосе, я внес изменения, но я все еще получаю только цифры и имена ноль. Обратите внимание, что если я помещаю (имена) перед оператором if, я получаю имена, но не после if. – nomoreflash