Существует метод в приложении старых рельсов. он может преобразовать строку в массив с помощью регулярного выражения.синтаксический анализ строки регулярным выражением
Так же, как это:
irb(main):047:0> string = "[(a+50%+1)(b+60%+2)]"
=> "[(a+50%+1)(b+60%+2)]"
irb(main):048:0> string.scan(/\((?<name>\w+)\+(?<percent>\d+)%\+(?<num>\d+)\)/)
=> [["a", "50", "1"], ["b", "60", "2"]]
Но требование изменилось, я должен добавить новое значение в строку.
я могу сделать это так:
irb(main):049:0> string = "[(a+50%+1+100)(b+60%+2+200)]"
=> "[(a+50%+1+100)(b+60%+2+200)]"
irb(main):050:0> string.scan(/\((?<name>\w+)\+(?<percent>\d+)%\+(?<num>\d+)\+(?<max>\d+)\)/)
=> [["a", "50", "1", "100"], ["b", "60", "2", "200"]]
, но он не может совместимо с предыдущим,
irb(main):051:0> string = "[(a+50%+1)(b+60%+2)]"
=> "[(a+50%+1)(b+60%+2)]"
irb(main):052:0> string.scan(/\((?<name>\w+)\+(?<percent>\d+)%\+(?<num>\d+)\+(?<max>\d+)\)/)
=> []
Есть ли лучший способ сделать это? Пожалуйста, помогите, спасибо заранее!
Ничего себе, я не знаю, что это может работать таким образом. Во всяком случае, почему вы не используете json или yaml? Из-за темы. Просто любопытно – Yana
Это старая система, я также думаю, что json или yaml лучше, если я это сделаю, мне нужно переписать много кода, но не хватает времени. – pangpang
О, ладно, я думал, что есть проблема с производительностью или что-то еще. Эти устаревшие коды .. – Yana