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

Kotlin使用正则\], \[调用split函数拆分字符串未获得预期结果

问题原因
  • Kotlin 中String.split的字符串类型参数默认按字面量精确匹配,不会解析为正则表达式。你传入的"\\], \\["转义后字面量为\], \[,和待拆分字符串中实际存在的], [分隔符不匹配,因此无法完成拆分,得到的列表长度始终为1。
  • 若要使用正则规则拆分,必须显式传入Regex类型参数,否则不会触发正则匹配逻辑。
解决方法

方案1:按固定字面量拆分(不需要正则能力)

如果分隔符格式固定就是], [,直接传入对应字面量即可,不需要额外加转义反斜杠:

val splittedList: List<String> = userProgramValue.split("], [")

方案2:正则拆分(兼容分隔符前后的空白、换行)

如果分隔符前后可能存在换行、多余空格,使用正则匹配更稳妥,正则规则匹配]+任意空白+逗号+任意空白+[的格式:

val splittedList: List<String> = userProgramValue.split(Regex("\\]\\s*,\\s*\\["))

拆分后可通过简单处理得到你预期的无首尾括号的内容:

val processedList = splittedList.map {
    it.removePrefix("[").removeSuffix("]").trim()
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:36:05