Я столкнулся с проблемой в MatchCollection, созданной регулярным выражением.Когда я использую .Count в этой коллекции MatchCollection, обработка никогда не заканчивается, как если бы она была завершена в бесконечном цикле.
Технически MatchCollection не может рассчитать, сколько элементов содержится в списке, тогда, если я использую этот список в foreach,это застряло.
Код таков:
var matches = Regex.Matches(OriginalSource, "(function)(.*?){(?:[^{}]+|{(?<n>)|}(?<-n>))+(?(n)(?!))*}", RegexOptions.IgnoreCase);
var ssc = 0;
try {
ssc = matches.Count;
} catch (Exception ex) {
throw new Exception("LOL");
}
foreach (Match match in matches) {
// ...
}
Строка OriginalSource такова: https://pastebin.com/UcL710g7?fbclid=IwAR1HNXZpkxo76Ecxdib9XgaBu0Rz2YmJsRoKFOmrPvLYjQkyY3nKl8RSbgI
Как с этим справиться?Это не исключение, возможно создать процесс тайм-аута?Потому что я могу игнорировать этот код, но этот Список не позволяет мне двигаться вперед.