python - 需要正则表达式来替换双引号之外的所有逗号并替换为 | - 在蟒蛇
问题描述
我有这样的字符串:
8/30/2021 19:22,server1,app1,"user1, Mrs. user2",US,One,Email, Sent,Success
预期输出:
8/30/2021 19:22|server1|app1|user1, Mrs. user2|US|One|Email| Sent|Success
我的代码看起来像:
....
line = line.replace(',', '|')
print (line)
如何使用 RegEx 在 python 中处理双引号?
解决方案
对不起,我的回答只是一个黑客,但提供了预期的结果:
from io import StringIO
import pandas as pd
s = '8/30/2021 19:22,server1,app1,"user1, Mrs. user2",US,One,Email, Sent,Success'
print("|".join(pd.read_csv(StringIO(s)).columns))
输出:
'8/30/2021 19:22|server1|app1|user1, Mrs. user2|US|One|Email| Sent|Success'
我有点猜想你可以通过谷歌搜索找到答案吗?:) 或者查看 pandas 库的源代码!
更新- 是的,5 分钟的 Google Fu 揭晓答案!在这里:https : //stackoverflow.com/a/632552/551694 请去投票。
re.sub('(,)(?=(?:[^"]|"[^"]*")*$)','|',s)
交付
'8/30/2021 19:22|server1|app1|"user1, Mrs. user2"|US|One|Email| Sent|Success'
推荐阅读
- python - Beautiful Soup 网页抓取复杂的 html 数据
- java - Android Studio 类名自动完成建议为红色
- android - 在 android studio 中使用 Git 进行备份
- google-sheets - Google Drive API 响应:但您的计算机或网络可能正在发送自动查询
- python-3.x - 如何在python中按列连接循环结果
- android - 如何使用 viewPager2 包装内容或更改高度大小的项目?
- reactjs - React Amchart - 如何在加载图表时删除动画
- python - Matplotlib 直方图 y 轴范围
- javascript - 尝试从我的 REST API 进行 Axios 调用时获取“ERPROTO”
- python - 在 Elastic Search 中使用通配符进行部分搜索