如何使用正则表达式移除各行同索引重复字符并保留方括号
解决方案
方案1:使用str.replace直接替换(更推荐)
直接通过正则匹配整个字符串结构,删除末尾冗余的第三个字符,保留方括号:
df.column1 = df.column1.str.replace(r'(\[\w,\w),\w\]', r'\1]', regex=True)
运行后输出结果:
print(df) column1 0 [b,e] 1 [e,a] 2 [a,b]
方案2:修改str.extract规则适配需求
如果要继续使用extract实现,将左方括号纳入捕获范围,提取后补全右方括号即可:
df.column1 = df.column1.str.extract(r'(\[\w,\w)') + ']'
正则逻辑说明:
\[匹配左方括号\w,\w匹配前两个字符和中间的逗号- 捕获组提取目标内容后补加
],即可得到带方括号的结果
内容的提问来源于stack exchange,提问作者user2023
相关产品推荐
相关产品推荐

