在记事本++上替换逗号之间的逗号

时间:2016-06-14 08:36:18

标签: regex notepad++

我有要导入数据的CSV,分隔符是这里的逗号;但是当行或行有两封电子邮件时,逗号会将它们分开,以便导入失败。 所以当我们在同一条线上时,我想要删除两个之间的逗号,但我不知道如何。 如果你有替代解决方案,它也会受到欢迎!! 感谢。

示例:

ENTERPRISE1 S.L.,,ENTERPRISE1,999461678,,,,,,ent1@mail.com, ent1alternate@mail2.com,Spain,,,
ENTERPRISE2 S.A.,,ENTERPRISE2.,999859177,,,,,,ent2@mail.com,Italy,,,

4 个答案:

答案 0 :(得分:0)

您可以使用记事本执行此操作:

搜索字段:

([^@]+@[^,]+)\s*,\s*([^@]+@[^,]+)

替换字段:

\1|\2

检查正则表达式复选框

所以

ent1@mail.com, ent1alternate@mail2.com

将是:

ent1@mail.com|ent1alternate@mail2.com

这将让您保持列组织,并允许处理数据并避免任何丢失

答案 1 :(得分:0)

鉴于您的数据不使用任何转义且@ -char仅出现在邮件列中,您可以使用((?:@|\G(?!^))[^,]+),([^,@]+@)作为搜索模式,使用$1$2进行替换。这也将正确处理列中的两个以上邮件。当然,您可以在$1$2之间放置一个选择分隔符,例如$1;$2

您可以在行动here中看到它。

答案 2 :(得分:0)

另一种选择是使用正确的CSV格式:在包含分隔符的任何字段周围加双引号。

([^,]+@[^,]+,[^,]+@[^,]+)

替换:

"\1"

(正则表达式改编自destrif's answer)。

答案 3 :(得分:-1)

在您的示例中,您可以在逗号分隔多个电子邮件地址后始终使用空格。
如果这是一般规则,则应替换"," (逗号+空格)字符串由另一个分隔符(如分号),使用 ctrl + h 调用替换函数。