如何将这四个ruby代码组成一行?

时间:2013-10-23 01:45:35

标签: ruby string

我想将这四条红宝石线分成一行,将IP更改为他的网络。 例如“10.10.102.123”=>“10.10.102.0/24”

我使用下面的方法,但我希望在一行中找到更好的方法。

network = "10.10.102.123"
network = network.split('.')
network[3] = '0/24'
xx  = network.join('.')  

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

network = "10.10.102.123".sub(/\.\d{1,3}$/, '.0/24')

答案 1 :(得分:1)

或只是network = "10.10.102.123".sub(/\d+$/, '0/24')

答案 2 :(得分:0)

虽然我喜欢Cary的答案,但如果你只是用一个阵列挤压你的4行就可以用

来做
"10.10.102.103".split('.')[0..-2].push('0/24').join('.')

答案 3 :(得分:0)

有时regexp可能很慢而只是搜索'。'更快

address = "10.10.102.123"
address[address.rindex('.')..-1] = '.0/24'
p address #=> "10.10.102.0/24"