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

如何使用正则表达式正确提取token值 解决匹配结果残留多余符号问题

问题原因

你当前使用的正则{"token":["}]仅能匹配前缀{"token":",字符组["}]只会匹配单个字符,因此替换后仅删除了前缀内容,剩余token-value"}与你的运行结果一致。

解决方案

方案1:基于替换逻辑调整

直接匹配整段JSON结构,通过捕获分组提取token值,正则规则调整为^{"token":"(.*)"}$,替换时引用第一个捕获分组即可:

re, err := regexp.Compile(`^{"token":"(.*)"}$`)
if err != nil {
    log.Fatal(err)
}
val = re.ReplaceAllString(val, "$1")
return val

方案2:直接匹配提取(更推荐)

如果待处理内容可能存在其他字段,用子匹配提取的方式容错性更高:

re, err := regexp.Compile(`"token":"([^"]+)"`)
if err != nil {
    log.Fatal(err)
}
match := re.FindStringSubmatch(val)
if len(match) >= 2 {
    val = match[1]
}
return val

该正则中([^"]+)会捕获所有非双引号的字符,自动在token值后的双引号位置停止匹配,无需处理结尾的大括号。

补充说明

如果待处理内容是标准JSON格式,更建议使用Go标准库encoding/json解析取值,避免因为格式变动(如字段顺序变化、存在多余空格)导致正则失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:09:04