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

Azure Logic App中替换转义双引号CSV字符串内的逗号

解决Azure Logic App中CSV转JSON时引号内逗号导致的拆分问题

解决方案思路

由于供应商提供的CSV中,带引号的字段内部包含逗号,直接拆分会导致字段被错误分割。我们可以通过以下步骤处理:

  • 先用正则表达式匹配所有双引号(含转义引号)包裹范围内的逗号,将其替换为一个临时占位符
  • 对处理后的CSV按逗号拆分字段
  • 再将占位符替换回逗号,最后转换为JSON

正则表达式与JavaScript代码实现

第一步:替换引号内的逗号为占位符

在Azure Logic App的「JavaScript代码」动作中,使用以下代码替换引号内的逗号:

// 从动态内容获取原始CSV字符串
const originalCsv = workflowContext.actions.Get_CSV_Content.outputs.body;

// 匹配双引号内的逗号,替换为自定义临时占位符
const processedCsv = originalCsv.replace(
  /(?<=["](?:\\.|[^"\\])*?)[,](?=(?:\\.|[^"\\])*?["])/g,
  '__INTERNAL_COMMA__'
);

return processedCsv;

正则表达式说明

  • (?<=["](?:\\.|[^"\\])*?):正向回溯断言,确保逗号前是未转义的双引号,且已匹配了任意数量的转义字符(如\")或非引号/非转义字符
  • [,]:匹配需要替换的目标逗号
  • (?=(?:\\.|[^"\\])*?["]):正向预查,确保逗号后会匹配到未转义的双引号,中间可包含转义字符或非引号/非转义字符

第二步:拆分CSV并恢复内部逗号

拆分处理后的CSV后,用以下代码将占位符还原为逗号:

// 从动态内容获取拆分后的字段数组
const splitFields = workflowContext.actions.Split_CSV.outputs.body;

// 还原占位符为逗号
const restoredFields = splitFields.map(field => field.replace(/__INTERNAL_COMMA__/g, ','));

return restoredFields;

第三步:转换为JSON

将恢复后的字段数组按表头映射为JSON对象,可直接使用Azure Logic App的「创建JSON」动作完成。

注意事项

  • 临时占位符__INTERNAL_COMMA__需选择不会出现在CSV内容中的字符串,避免替换时出现冲突
  • 该正则支持识别转义双引号(如"He said \"hello\""),不会误判引号范围

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:35:28