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

如何用正则分隔符实现|特殊拆分规则适配pandas.read_csv

适配pandas.read_csv的分隔符正则方案

规则与需求说明

  • 待拆分样例字符串:
string = "1234|Google | Alphabet|pest||pp| |||r"
  • 目标拆分结果:
[1234, "Google | Alphabet", "pest", "", "pp", " ", "", "", "r"]
  • 核心拆分逻辑:
    • 仅当|符号左右两侧均为空格时,该|属于字段内容,不做拆分
    • 其余所有位置的|均作为分隔符处理
  • 要求:正则可直接传入pandas.read_csv的sep参数,无需额外手动处理逻辑。

可用正则表达式

(?<! )\||\|(?! )

正则逻辑说明

正则通过两种分支匹配所有需要作为分隔符的|:

  • (?<! )\|:匹配左侧不是空格的|
  • \|(?! ):匹配右侧不是空格的|

两种分支取并集,刚好覆盖所有不满足「左右均为空格」的|,自动跳过左右都是空格的内容型|,完全匹配拆分规则。

pandas调用示例

注意使用正则作为分隔符时需要指定解析引擎为python(C引擎不支持正则分隔符):

import pandas as pd

# 读取文件时直接传入正则即可
df = pd.read_csv(
    "your_target_file.csv",
    sep=r"(?<! )\||\|(?! )",
    engine="python"
)

可先用re.split做效果验证:

import re
res = re.split(r"(?<! )\||\|(?! )", string)
print(res)
# 输出:['1234', 'Google | Alphabet', 'pest', '', 'pp', ' ', '', '', 'r'],与预期结果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:48:14