У меня есть длинный строковый ввод, который содержит тайваньские даты. Мне нужно преобразовать их в американские обозначения и оставить их в том же месте ввода. Я создал регулярные выражения, которые сопоставляются с текстом во входных данных, но я не могу найти способ преобразовать эти совпадения в целые числа, выполнить математические операции (чтобы изменить год), а затем заменить новые значения в том же месте, где были старые значения. ,
Тайваньские даты имеют формат гггг / мм / дд.
Например: 107年02月13日
, то есть 02/13/2018
До сих пор у меня есть:
input = gets
texto = input.gsub(/\s+/, "")
Date_with_characters = /\d{3}年\d{2}月\d{2}日/
if input.match(Date_with_characters)
puts "Encuentro fechas con caracteres"
elsif
puts "NO encuentro un joraca con caracteres"
end
Date_with_slashes = %r{\d{3}/\d{2}/\d{2}}
if input.match(Date_with_slashes)
puts "Encuentro fechas con barras"
elsif
puts "NO encuentro un joraca con barras"
end
Приведенный выше код находит все даты (как с символами, так и с косой чертой), но я надеялся, что смогу затем превратить первые 3 индекса в году в целые числа, выполнить математические вычисления, чтобы превратить их в западный календарь, и вернуть их в то же самое место (пропуская движущийся год до конца пока). Мне еще не повезло, и я много чего пробовал.
Большое спасибо!