You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 4:如何基于指定字符修剪IP地址字符串的末尾数字

嘿,这个需求太常见啦,尤其是要遍历同网段IP的时候!我给你分享几个在Swift里实现的实用方案,按需挑选就行:

方法一:分割拼接法(直观易懂)

把IP地址按.拆分成数组,去掉最后一段数字,再把剩下的部分重新拼接起来,最后补上.就搞定了。不管最后一段是1位、2位还是3位数字,这个方法都能完美处理:

let originalIP = "192.168.1.123"
let ipComponents = originalIP.components(separatedBy: ".")

// 先确保是合法的IPv4格式(分割后有4个部分),避免崩溃
if ipComponents.count == 4 {
    let ipPrefix = ipComponents.dropLast().joined(separator: ".") + "."
    print(ipPrefix) // 输出:192.168.1.
}

方法二:正则匹配法(精准定位)

如果能确定IP格式是标准IPv4,用正则表达式可以直接匹配到最后一个.之前的所有内容,一步到位:

let originalIP = "192.168.1.123"
// 正则表达式:匹配从开头到最后一个`.`的所有内容
if let prefixRange = originalIP.range(of: "^(.*)\\.", options: .regularExpression) {
    let ipPrefix = String(originalIP[prefixRange])
    print(ipPrefix) // 输出:192.168.1.
}

小提示:如果要处理非标准IP格式,最好先做格式校验,避免匹配失败。

方法三:索引截取法(高效简洁)

直接找到最后一个.的位置,然后截取从开头到这个位置的字符串(包含.),效率很高:

let originalIP = "192.168.1.123"
if let lastDotIndex = originalIP.lastIndex(of: ".") {
    let ipPrefix = String(originalIP[...lastDotIndex])
    print(ipPrefix) // 输出:192.168.1.
}

额外小建议

如果你的场景需要频繁处理IP,最好先做基础的格式校验(比如判断分割后的数组长度为4,且每个部分都是0-255之间的数字),这样能避免因非法IP导致的程序异常哦~

内容的提问来源于stack exchange,提问作者Seth Haberman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:43:05