public Dictionary <int, int> Parse(string input) { var list = new Dictionary <int, int>(); string modified = input; while (modified.Contains(EmailElement)) { int indexDog = modified.IndexOf(EmailElement); int start = indexDog; int end = indexDog; while (!Spliters.Contains(modified[start]) && start != 0) { start--; } if (start != 0) { start++; } while (!Spliters.Contains(modified[end]) && end != modified.Length - 1) { end++; } if (end != modified.Length - 1) { end--; } int lengthPossibleEmail = end + 1 - start; if (lengthPossibleEmail >= 5) { string possibleEmail = modified.Substring(start, lengthPossibleEmail); if (emailValidator.ValidEmail(possibleEmail)) { list.Add(input.IndexOf(possibleEmail), lengthPossibleEmail); } } modified = modified.Remove(start, lengthPossibleEmail); } return(list); }
/// <summary> /// Check if given string has an email format. /// </summary> /// <param name="email">String to check.</param> /// <returns>If given string has a right format.</returns> public bool ValidEmail(string email) { return(emailValidator.ValidEmail(email)); }