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

如何编写可匹配逗号-引号-逗号格式的正则表达式?

ETL场景CSV异常结构清洗方案

问题说明

所有字段值均被引号包裹、逗号分隔的CSV文件中,存在,",(两个逗号之间仅存在单个引号)的异常结构,需将该结构替换为单个逗号,作为ETL抽取的前置处理环节。

核心匹配逻辑

直接定位异常子串,",,全局替换为,即可,不会影响正常被完整引号包裹的字段(合法字段格式为"字段内容",,不存在前后同时为逗号的单个引号)。

不同场景实现方式

Python 脚本实现

适合嵌入自定义ETL流程的场景:

import re

def clean_csv_line(raw_line):
    # 全局替换两个逗号间的单个引号结构为单个逗号
    return re.sub(r',",', r',', raw_line)

# 全量文件清洗示例
with open('input.csv', 'r', encoding='utf-8') as in_f, open('cleaned_output.csv', 'w', encoding='utf-8') as out_f:
    for line in in_f:
        out_f.write(clean_csv_line(line))

Shell 命令行快速实现

适合临时预处理、批量快速清洗场景,使用sed工具即可:
sed 's/,"/,/g' input.csv > cleaned_output.csv

可视化ETL工具配置

在DataX、Flink CDC、Kettle等工具的字符串替换节点直接配置即可:

  • 匹配规则:全局匹配
  • 匹配内容:,",
  • 替换内容:,

校验建议

替换完成后建议抽样校验:

  • 检查原包含异常结构的行,替换后字段数量是否符合预期
  • 抽查正常含引号的字段,确认没有被误修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 08:45:04