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

Kotlin初学者求助:如何从文本及脚本中提取IP地址

Kotlin提取文本中IP地址的正确方法

你的原代码问题在于用[a-z]正则拆分字符串,只会把小写字母作为分隔符,拆分后得到的内容包含空字符串、换行符和IP的混合结果,无法直接得到纯净的IP地址。正确的做法是用正则表达式匹配IP格式的内容,而不是拆分。

实现代码

val string = """
hello
192.168.0.1
test
192.168.0.22
kotlin
192.168.0.115
"""

// 严格匹配0-255范围的IP正则表达式
val ipRegex = Regex("""\b(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b""")

// 提取所有匹配的IP地址
val ipAddresses = ipRegex.findAll(string)
    .map { it.value }
    .toList()

// 逐个输出IP
ipAddresses.forEach { println(it) }

代码说明

  1. 正则表达式:这段正则会严格匹配IP地址的格式,确保每段数字在0-255之间,避免提取类似999.999.999.999这种非法内容。
  2. findAll方法:Regex的findAll方法会遍历整个字符串,返回所有符合正则规则的匹配结果。
  3. 提取结果:通过map { it.value }提取每个匹配项的字符串内容,转成List后可以直接遍历输出或后续处理。

Kotlin脚本中使用

如果是写Kotlin脚本(.kts文件),直接复制上述代码即可运行,不需要包裹类或main函数,执行脚本就能得到输出:

192.168.0.1
192.168.0.22
192.168.0.115

内容的提问来源于stack exchange,提问作者مريم برير

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:33:00