// Текст для обработки
string text = project.ExecuteMacro(project.Variables["test_DOM"].Value);
var errorIfEmpty = false;
// Регулярное выражение для извлечения нужных данных
var regexGroups = Macros.TextProcessing.Regex(text, @"ВАША РЕГУЛЯРКА НА ПАРС С ДОМ ДЕРЕВА");
// Обработка результатов
var results = regexGroups
.Select(g => g.FirstOrDefault()) // Получаем первую группу (или null, если группа пуста)
.Where(result => result != null) // Фильтруем null значения
.Select(result =>
{
// Если строка не пуста и последний символ - '<', удаляем его
return result.EndsWith("<") ? result.Substring(0, result.Length - 1) : result;
})
.ToList();
// Проверка на пустоту и выброс исключения при необходимости
if (results.Count == 0)
{
if (errorIfEmpty) throw new Exception("No matching groups found.");
}
else
{
// Добавляем обработанные результаты в список
project.Lists["Cards_type_num"].AddRange(results);
}
регулярка + проходка