Программа застревает в NextMatch (), когда Regex.NextMatch является нулевым - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь проанализировать большой HTML-файл для извлечения определенных элементов, но после анализа последних элементов (Match.NextMatch равен нулю) он никогда не выходит из NextMatch (), вот код:

Match FrameMatcher = Regex.Match(File.ReadAllText(file.FileName), @"<td class=""tline""><p><a href=""#(.*?)_\[(.*?)]""  style=""font-family:Arial;font-size:10.0pt"">\1 \[\2]<\/a><\/p><\/td>", RegexOptions.Multiline|RegexOptions.Singleline);
                int frameCount = 0;
                while (FrameMatcher.Success)
                {
                    frameCount++;
                    FrameMatcher = FrameMatcher.NextMatch();
                }
                MessageBox.Show(frameCount.ToString());

1 Ответ

0 голосов
/ 15 февраля 2019

Похоже, у вас бесконечный цикл.попробуйте изменить условие while на что-то вроде:

while (FrameMatcher != null)
{
     frameCount++;
     FrameMatcher = FrameMatcher.NextMatch();
}

И, как уже упоминалось, было бы лучше проанализировать html-файл с помощью библиотеки html-разбора, а не regex.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...