如何在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
相关产品推荐
相关产品推荐

