在C#中的字符串中拆分子串

Squ*_*ivo 2 c# regex string email

我需要检查包含电子邮件列表的字符串.这些电子邮件通常用逗号分隔,但我需要检查该列表中的某个地方是否有逗号以外的分隔符.这是一个例子:

email1@email.com,email2@email.com,email3@email.com#email4@email.com
Run Code Online (Sandbox Code Playgroud)

我需要识别不同的字符并替换为逗号.

我不能只使用正则表达式来识别逗号以外的特殊字符并替换它们,因为电子邮件可能包含其中一些字符.所以我需要在两封电子邮件之间找到一些东西.我制作了以下正则表达式来识别电子邮件,我相信它将涵盖大部分电子邮件:

^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-z0-9]+(\.[a-z0-9]+)+$
Run Code Online (Sandbox Code Playgroud)

但是我在使用C#时如何使用它来解决我的问题有点迷失.我需要捕获这个正则表达式的两个匹配之间的东西并替换为逗号.

谁能帮助我?谢谢.

Rot*_*tem 7

您的问题无法解决,因为分隔符并不总是由决定.

考虑此输入,其中分隔符是.:

user@server.co.uk.user@otherServer.com
Run Code Online (Sandbox Code Playgroud)

这是:

user@server.co | uk.user@otherServer.com
Run Code Online (Sandbox Code Playgroud)

或者是:

user@server.co.uk | user@otherServer.com
Run Code Online (Sandbox Code Playgroud)

或者这个输入:

user@server.intuser@otherServer.com
Run Code Online (Sandbox Code Playgroud)

是分隔符u:

user@server.int | ser@otherServer.com
Run Code Online (Sandbox Code Playgroud)

或分隔符t:

user@server.in | user@otherServer.com
Run Code Online (Sandbox Code Playgroud)

如果您不愿意接受一定比例的失败,那么最好先寻找不接收此输入的方法.