需要 RegEx 来替换双引号外的所有逗号并替换为 | - 在 python
Need RegEx for replacing all commas outside of double quotes and replaceing with | - in 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 中的双引号?
抱歉,我的回答只是一个 hack,但提供了预期的结果:
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 傅揭示了答案!在这里:
请去投票吧。
re.sub('(,)(?=(?:[^"]|"[^"]*")*$)','|',s)
交付
'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
预期输出:
8/30/2021 19:22|server1|app1|user1, Mrs. user2|US|One|Email| Sent|Success
我的代码如下:
....
line = line.replace(',', '|')
print (line)
如何使用 RegEx 处理 python 中的双引号?
抱歉,我的回答只是一个 hack,但提供了预期的结果:
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 傅揭示了答案!在这里: 请去投票吧。
re.sub('(,)(?=(?:[^"]|"[^"]*")*$)','|',s)
交付
'8/30/2021 19:22|server1|app1|"user1, Mrs. user2"|US|One|Email| Sent|Success'