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

如何提取字符串中特定标记后的内容?从AWS Lex报文中取value字段值

可行实现方案

方案1:JSON解析(优先推荐)

你获取的报文本身是被外层单引号包裹、内部做了转义的合法JSON结构,直接用JSON解析是稳定性最高的方案,不会因为value字段包含特殊字符出现匹配错误。
处理逻辑通用所有开发语言:

  • 先移除原始报文首尾的单引号,拿到标准JSON字符串
  • 对JSON字符串做反序列化,遍历messages数组直接读取每个元素的value字段即可

Python代码示例:

import json

# 原始返回报文
raw_response = '\'{"messages":[{"type":"PlainText","group":1,"value":"Great!"},{"type":"PlainText","group":2,"value":"Please click here."}]}\''
# 移除首尾单引号
json_content = raw_response.strip("'")
# 反序列化
lex_data = json.loads(json_content)
# 提取所有value
result = [item["value"] for item in lex_data["messages"]]
# 得到结果:['Great!', 'Please click here.']

方案2:正则提取

如果确实需要用正则实现,你之前匹配失败大概率是没有正确处理转义字符、也没有使用捕获组提取目标内容,可使用带非贪婪匹配的正则表达式:"value\\":\\"(.*?)\\"},直接取第一个捕获组的结果即可。

Python正则示例:

import re

raw_response = '\'{"messages":[{"type":"PlainText","group":1,"value":"Great!"},{"type":"PlainText","group":2,"value":"Please click here."}]}\''
match_pattern = r'"value\\":\\"(.*?)\\"}'
result = re.findall(match_pattern, raw_response)
# 得到结果:['Great!', 'Please click here.']

注意:正则方案仅适用于value内容中不会出现\"}组合的场景,若value本身包含转义引号加右大括号的内容会出现匹配偏差,优先使用JSON解析方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:57:03