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

如何在pandas中移除匹配正则表达式的字符串后缀

实现方案

你可以基于捕获组正则结合pandas的str.replace方法完成需求,调整后的正则会精准匹配你需要修改的前两行格式,不会影响第三行内容:

import pandas as pd

# 构造示例数据(实际使用时替换为你自己的数据集即可)
data = {'col1': ['DS-71007-002-1', 'DN-80013-002-6', '2"-VH-11008-MW01-03']}
df = pd.DataFrame(data)

# 核心替换逻辑
df['col1'] = df['col1'].str.replace(r'^([A-Z]{2}-\d{5}-\d{3})-\d$', r'\1', regex=True)

正则说明

  • ^ 匹配字符串开头,$ 匹配字符串结尾,确保只有整行完全符合格式的内容才会被修改
  • 括号()包裹的部分为捕获组,\1就代表第一个捕获组匹配到的内容,替换时直接保留这部分,相当于自动删除了末尾的-单个数字后缀
  • [A-Z]{2}匹配两个大写字母,\d{5}匹配5位数字,\d{3}匹配3位数字,和你原正则的匹配规则完全一致,只是简化了写法

执行后输出结果如下:

col1
0        DS-71007-002
1        DN-80013-002
2  2"-VH-11008-MW01-03

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:15:04