2016-06-14 169 views
1

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

例子:

ENTERPRISE1 S.L.,,ENTERPRISE1,999461678,,,,,,[email protected], [email protected],Spain,,, 
ENTERPRISE2 S.A.,,ENTERPRISE2.,999859177,,,,,,[email protected],Italy,,, 
+0

我没有使用记事本++,所以我不怎么写宏(如果可能的话)。但简单的伪代码如下: 1-在当前行上获取多少@, 2-如果存在多个@,则获取逗号和@位置, 3第一@位置> 2位置之间的逗号位置电子邮件> last @ position – Lati

+0

如果可能,最好更改文件的构建方式。更改用另一个字符分隔邮件的逗号。 – Toto

回答

0

鉴于你的数据不使用任何解码和@ -char只会出现在邮件列中,您可以使用((?:@|\G(?!^))[^,]+),([^,@][email protected])作为搜索模式,并使用$1$2进行替换。这也将正确处理两列以上的邮件。当然你可以在$1$2之间加上一个分隔符,如$1;$2

你可以在行动here看到它。

+0

@Destrif我真的没有看到错误 - 你究竟是什么意思? –

+0

@Destrif是的,但结果是正确的。 –

+0

对不起,它工作正常:) – Destrif

-1

看起来像你的榜样,你总是有逗号分隔多个电子邮件地址后一个空的空间。
如果这是一条通用规则,则应使用另一分隔符(如分号)替换“,”(逗号+空格)字符串,使用ctrl + h来调用替换函数。

+0

@BrianTompsett嗨,你为什么downvote我的答案? –

+0

我没有。我刚刚在评论中进行了编辑。所有选票都是匿名的,所以没有人能够说出谁以哪种方式投票 - 即使主持人不能。 –

+0

哦,好的。感谢编辑然后:) –