Member 12423102 Ответов: 4

Как извлечь конкретное слово из строки на языке Си#


у меня есть Входная строка

"44/1,Сотовый: +91 - 112222112 Mail:abcde@gmail.com"

мой вне положите строку так и должно быть "abcde@gmail.com"
Как я могу достичь этого в C#
Мне нужно удалить все письма вплоть до Почты:

Что я уже пробовал:

я попробовал Indexof()
Для Indexof мне нужно заменить "Mail:" на символ, который я могу получить "abcde@gmail.com" использование функции Sub string

Sergey Alexandrovich Kryukov

Регулярное выражение!

Но, честно говоря, вы вообще не формулировали проблему. Пример - это не формулировка.

—СА

4 Ответов

Рейтинг:
2

Zafar Sultan

Попробуй:

string testString = "44/1,Cell: +91- 112222112 Mail:abcde@gmail.com";
string sub = testString.Substring(testString.IndexOf("Mail:") + 5);
Console.WriteLine(sub);


До этой проверки эта ссылка[^] и эта ссылка[^] чтобы понять, как работают две очень распространенные строковые функции.

Надеюсь, это поможет.


Рейтинг:
2

kanangandhi

string[] strAry = "44/1,Cell: +91- 112222112 Mail:abcde@gmail.com".Split(':');

            foreach (var item in strAry)
            {
                bool isEmail = Regex.IsMatch(item, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase);
                if (isEmail)
                {
                    MessageBox.Show(item);
                }
            }


Richard Deeming

Перечитайте вопрос еще раз. ОП не спрашивал о проверке адреса электронной почты!

Рейтинг:
1

Karthik_Mahalingam

попробуйте это сделать, при условии, что ваш ввод будет осуществляться таким образом ( электронная почта в конце)

string input = "44/1,Cell: +91- 112222112 Mail:abcde@gmail.com";
            string email = input.Substring(input.IndexOf("Mail:")).Replace("Mail:", "");


Рейтинг:
1

SHUBHAM KHANDAR

индексный метод использования для струнного..
найдите первое появление почты: Вы получите должность М.
любить:


строка s1="44/1,ячейка: +91 - 112222112 Mail:abcde@gmail.com";
int k=s1.IndexOf("Почта:");


тогда u может использовать метод подстроки из индекса k+1


Richard Deeming

Уже рассмотрено в решении 2.

И ваш код не удалит префикс "Mail:", который OP не хотел видеть в выходной строке.