C # найти строку внутри httpwebresponse - PullRequest
0 голосов
/ 23 ноября 2018

Итак, я пытаюсь найти и захватить строку внутри моего httpwebresponse, я уже создал поток и могу успешно читать из вывода, чтобы идентифицировать текст внутри ответа, но теперь я пытаюсь извлечь текст изответ, например:

Вывод содержит,

    <script>
    var Site = 'home';

        var Home = {
            page: 24,
            name: 'Pokemon',
            Title: Pokemon chars
        };
     </script>

Что я пытаюсь сделать, это извлечь только

 Pokemon

, однако это может измениться на разных страницахтак что я не могу просто предположить, что

name:

содержит Pokemon

Так что мне нужно сделать это обрезать имя, но сохранить внутренний текст, так что я попробовал что-то в этом родеиз

string str5 = "name: '";
foreach (string str6 in str3.Split(new char[] {'\n'}))  // str3 is = to the response given from the request which is now obviously a string its self.
{
   if (str6.StartsWith(str5))
   {
       str4 = str6.Replace(str5, "").Replace("',", "");
   }
}

, который должен найти строку, содержащую «name:», затем заменить «name:» на ничто и то же для конца этой строки, оставив только строку

Pokemon

но это не похоже на работу?

1 Ответ

0 голосов
/ 23 ноября 2018

Один из вариантов - использовать Регулярное выражение, если вы не можете десериализовать свой JSON.

string output = @"<script>
        var Site = 'home';

            var Home = {
                page: 24,
                name: 'Pokemon',
                Title: Pokemon chars
            };
         </script>";

         string regexPattern = @"name:\s'(.+?)',";
         Regex reg = new Regex(regexPattern);

         var match = reg.Match(output);

         if (match.Success)
         {
         Console.WriteLine(match.Groups[1].Value);
         }

Вы захватываете все между name: ' и ',, используя шаблон регулярного выражения.

...