舊的rails應用程序中有一種方法。它可以通過正則表達式將字符串轉換爲數組。通過正則表達式解析字符串
就像這樣:
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 2014-11-03 08:55:54
這是一箇舊系統,我也認爲json或yaml更好,如果我這樣做,我必須重寫很多代碼,但沒有足夠的時間。 – pangpang 2014-11-03 09:01:00
哦好吧,我認爲有一個性能問題或任何事情。那些遺產代碼.. – Yana 2014-11-03 09:18:47