Как извлечь строку с помощью C#

Мне нужно извлечь значение пароля, выделенное жирным шрифтом (Password10) из приведенного ниже текста. Я использую язык программирования C#.

FName Lname, ваш системный пароль был изменен. Если вы не изменили его или не знаете, почему оно было изменено, вам следует немедленно связаться с администратором. Ваш новый пароль - Пароль10

Если у вас есть какие-либо вопросы, пожалуйста, свяжитесь с:

Офис Программы Решений Телефон: Электронная почта: notifications@cho.com

Спасибо за использование ххххх

4 ответа

Хорошо, если вы точно знаете, что это будет форма, в которой будет представлен текст. Всегда. Тогда вы можете просто сделать что-то вроде:

string text = //load your text here;
int startingIndex = text.IndexOf("Your new password is ") + "Your new password is ".Length;
string newText = text.SubString(startingIndex, text.length); //this will load all your text after the password.
//then load the first word
string password = newText.Split(' ')[0];

Вы можете также рассмотреть возможность использования регулярных выражений (RegEx).

Я не проверял это, но, возможно, это может подтолкнуть вас в правильном направлении.

string input = [YOUR MAIL];
string regex = @"Your new password is (\w+)";
Match m = Regex.Match(input, regex);
if (m.Success) {
    string password= m.Groups[1].Value;
    //do something
}

Вы могли бы использовать string.Substring:

int indexOfPasswordText = text.IndexOf("Your new password is ");
if (indexOfPasswordText != -1)
{
    int passwordStart = indexOfPasswordText + "Your new password is ".Length;
    int indexeOfNextWord = text.IndexOfAny(new[] { '\n', '\r', ' ' }, passwordStart);
    if (indexeOfNextWord == -1) indexeOfNextWord = text.Length;
    string passWord = text.Substring(passwordStart, indexeOfNextWord - passwordStart);
    Console.Write(passWord);
}

демонстрация

Другие вопросы по тегам