Как извлечь строку с помощью 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);
}