首页 > 解决方案 > 查找和替换,两个字符之间

问题描述

所以我有一个 CSV 文件,其中有一些异常,例如

2019-07-25 00:00:00,1014488,2019-07-25 12:24:12,112629,Amy,Flutmus,84004,GM,0001,2.99,312,FFO & CS PLATE        ||22,10999,90027,90062||Sand w/ Options,1,0,0.2,18.85,0,1

我想在这些字符之间替换 || ||。所以我期待

2019-07-25 00:00:00,1014488,2019-07-25 12:24:12,112629,Amy,Flutmus,84004,GM,0001,2.99,312,FFO & CS PLATE           ,22,*10999*90027*90062,Sand w/ Options,1,0,0.2,18.85,0,1

标签: regexcsvreplacefind

解决方案


您可以使用re.sub捕获所有字符串||,然后将,s替换为*s:

import re

value = "2019-07-25 00:00:00,1014488,2019-07-25 12:24:12,112629,Amy,Flutmus,84004,GM,0001,2.99,312,FFO & CS PLATE        ||22,10999,90027,90062||Sand w/ Options,1,0,0.2,18.85,0,1"

pattern = re.compile(r'\|\|(.+)\|\|')

cleaned_value = pattern.sub(lambda match: match.group().replace(",", "*"), value)

print(cleaned_value.replace(r'||', ','))

推荐阅读