regex - 查找和替换,两个字符之间
问题描述
所以我有一个 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
解决方案
您可以使用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'||', ','))
推荐阅读
- c# - .NET Core 在处理引用的类库时重新加载保存问题
- java - 在创建通用 CRUD 组件时使用聚合而不是继承会更好吗?
- oracle - Oracle SQL Developer 12505 网络更改后的错误
- python - 词云 MatplotLib
- python - 更高效的脚本
- sql - 跨数据库会话保持多用户状态
- sql - 最多一个查询 SQL
- c# - 成功消息后如何重定向登录页面
- byte-buddy - 有什么办法可以让byte buddy生成的这个类文件包含LocalVariableTable?
- loopbackjs - Loopback 4:如何从 loopback 4 访问名称中带有下划线的表?