Поиск по таблице с помощью Regexp

Рейтинг: 0Ответов: 1Опубликовано: 27.10.2014

Осуществляю поиск по таблице:


var arbitrS = Regex.Match(abrezstring.Substring(arbitr), @".*Ответчик...");
//считаем количество поданых исков:
arbitr4.Text = (arbitrS.Groups[1].ToString());
arbitr5.Text = (arbitrS.Groups[3].ToString());
arbitr6.Text = (arbitrS.Groups[5].ToString());
//Условие вставления нулей
if (arbitr4.Text == "") { arbitr4.Text = "0"; }
if (arbitr5.Text == "") { arbitr5.Text = "0"; }
if (arbitr6.Text == "") { arbitr6.Text = "0"; }
//Суммируем
Int64 num3 = Convert.ToInt64(arbitr4.Text) + Convert.ToInt64(arbitr5.Text) + Convert.ToInt64(arbitr6.Text);

Собственно вопрос: условие поиска заточено под три первые строки в таблице. Но в таблице может быть от 0 до ... строк. Какую конструкцию использовать, чтобы поиск осуществлялся независимо от кол-ва строк? try-catch не срабатывает - программа зависает при попытке прочитать несуществующие данные.

Ответы

▲ 1

Возможно, имеет смысл переписать регулярное выражение таким образом, чтобы производилась построчная обработка строк таблицы. И уже в цикле производить манипуляции с данными. Пример работы с Regex есть на http://msdn.microsoft.com/ru-ru/library/system.text.regularexpressions.regex%28v=vs.110%29.aspx

Обновление

Вот так у меня получилось http://regex101.com/r/bZ9cA5/2

Для истории:

TableColoredItemBackColor \D+(\d+) \D+(\d+)\D+(\d+) \D+(\d+)\D+([0-9 ]*)\D+(\d+)