我有以下三个字符串示例:
string1 = "abcd@efg.com这只是一些文本。这只是一些数字123456 xyz @ xyz.com asdasd asdad"
string2 = “abcd@efg.com mnop@qrs.com这只是一些文本。这只是一些数字123456 xyz @ xyz.com asdasd asd”
string3 = “abcd@efg.com mnop@qrs.com uvw@xyz.com这只是一些文本。这只是一些数字123456 xyz @ xyz.com asdad”
最终输出应该是一个列表,其中包含连续出现在字符串开头的所有电子邮件。
对于字符串1的输出-一个电子邮件地址
对于字符串3的输出-三个电子邮件地址
地址“xyz@xyz.com”应被忽略,因为它出现在其他文字之间。 有什么解决办法吗? 现有的方法返回了所有地址。
string1 = "abcd@efg.com这只是一些文本。这只是一些数字123456 xyz @ xyz.com asdasd asdad"
string2 = “abcd@efg.com mnop@qrs.com这只是一些文本。这只是一些数字123456 xyz @ xyz.com asdasd asd”
string3 = “abcd@efg.com mnop@qrs.com uvw@xyz.com这只是一些文本。这只是一些数字123456 xyz @ xyz.com asdad”
最终输出应该是一个列表,其中包含连续出现在字符串开头的所有电子邮件。
对于字符串1的输出-一个电子邮件地址
对于字符串3的输出-三个电子邮件地址
地址“xyz@xyz.com”应被忽略,因为它出现在其他文字之间。 有什么解决办法吗? 现有的方法返回了所有地址。
private List<string> ExtractEmails(string strStringGoesHere)
{
List<string> lstExtractedEmails = new List<string>();
Regex reg = new Regex(@"[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}", RegexOptions.IgnoreCase);
Match match;
for (match = reg.Match(strStringGoesHere); match.Success; match = match.NextMatch())
{
if (!(lstExtractedEmails.Contains(match.Value)))
{
lstExtractedEmails.Add(match.Value);
}
}
return lstExtractedEmails;
}