选择IP的一部分

时间:2014-02-19 14:44:33

标签: ruby string

说我有IP地址10.0.0.47
如何巧妙地操纵它以便我留下10.0.0.
chop浮现在脑海中,但它不够动态。无论上一个.之后的数字是由1位还是3位数组成,我希望它能够正常工作。

2 个答案:

答案 0 :(得分:4)

String#rindexString#[]与范围:

一起使用
ip = "10.0.0.47"
ip[0..ip.rindex('.')] # from the first character to the last dot.
# => "10.0.0."

或使用正则表达式:

ip[/.*\./]      # greedy match until the last dot
# => "10.0.0."

或使用String#rpartitionArray#join

ip.rpartition('.')[0,2].join
# => "10.0.0."

答案 1 :(得分:3)

str[/(\d+\.){3}/]
# => "10.0.0."