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

Python中如何移除字符串连续重复的特殊字符(仅保留单个)

解决Pandas中移除连续重复连字符(保留单个)的问题

需要处理字符串,将连续出现的连字符-替换为单个,同时完全保留字母和数字内容,对应输入输出示例如下:

原始数据期望输出
CL-LIN-VM--OE382FCL-LIN-VM-OE382F
CYaIX-PHY--aG617ACYaIX-PHY-aG617A
FRWIN-VM--FO025BFRWIN-VM-FO025B
PYWIN-VM--IK043DPYWIN-VM-IK043D
MQAIX--PhQA622FMQAIX-PhQA622F

你之前的代码问题在于,正则[^a-zA-Z0-9 -]会匹配所有非字母、数字、空格、连字符的字符并替换为-,这和需求不符。

正确实现代码

直接匹配连续的连字符并替换为单个即可:

# 非原地修改,生成新列或覆盖原列
Single_Column['Workload_2'] = Single_Column['Workload_2'].str.replace(r'-+', '-', regex=True)

# 原地修改版本
Single_Column['Workload_2'].str.replace(r'-+', '-', regex=True, inplace=True)

代码说明

  • 正则-+表示匹配一个及以上连续的连字符
  • str.replace方法会精准替换所有连续重复的连字符为单个,不会改动字母和数字,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:41:32