Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Kir@
90 / 58 / 7
Регистрация: 07.02.2010
Сообщений: 732

Regex - не найдена строка в таблице

27.10.2014, 10:05. Показов 609. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрям!

Осуществляю поиск по таблице:
C#
1
2
3
4
5
6
7
8
9
10
11
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 не срабатывает - программа зависает при попытке прочитать несуществующие данные.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.10.2014, 10:05
Ответы с готовыми решениями:

После применения RegEx строка перестает отображаться
Доброго времени суток. Имеется следующий участок кода: import java.io.ByteArrayOutputStream; import java.io.PrintStream; ...

Последняя строка в таблице
Добрый вечер! Как получить id последней строки в таблице?

Статическая строка в таблице
Добрый вечер. Вопрос в следующем. Имеется форма и подчиненная форма(таблица). Все заполняется вручную и служит только для...

6
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
27.10.2014, 14:05
Покажите входную строку для Regex. Или хотя бы ту часть от "абрезстринг", что доходит до метода.
0
 Аватар для Kir@
90 / 58 / 7
Регистрация: 07.02.2010
Сообщений: 732
27.10.2014, 14:54  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//Арбитражи
            str = Regex.Replace(str, @"\s+", " ");
            
            //Обрезаем искомый текст до размеров таблицы
            string text020 = "Арбитражные дела</h1>";
            var abrez = str.IndexOf(text020);
            var abrezs = Regex.Match(str.Substring(abrez), "(?:Арбитражные дела</h1>)(.*?)(?:содержанию|$)");
            ABREZ.Text = (abrezs.Groups[1].ToString());
            string abrezstring = ABREZ.Text;
            
            //ищем как обычно
            string text20 = "Ответчик";
            var arbitr = abrezstring.IndexOf(text20);
 
                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
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
27.10.2014, 15:17
Мда...
Покажите, какой именно текст (пару строк) находится в abrezstring.
0
 Аватар для Kir@
90 / 58 / 7
Регистрация: 07.02.2010
Сообщений: 732
28.10.2014, 03:44  [ТС]
Код идеальной таблицы (есть 3 строки, добавлены абзацы для удобства восприятия):
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<table class="CompanyInformationPadding" style="width:98%;" border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td> 
<table border="0" cellpadding="0" cellspacing="0"> 
<tr> 
<td style="padding-bottom:10px;"> 
<table class="TableFontFamily TableBorder " border="1" style="border-collapse:collapse;" rules="all"> 
<tr class="TableHeaderFontSize TableAllAroundPadding TableHeaderBackColor " style="text-align:center;">
<td rowspan="2" style="width:100px; border-right-width:0px;"> Год </td> <td colspan="3"> Тип участия </td> 
<td colspan="2"> Сумма, руб. 
</td> 
</tr> 
<tr class="TableHeaderFontSize TableAllAroundPadding TableHeaderBackColor " style="text-align:center;"> 
<td style="width:100px;"> Истец </td> <td style="width:100px;"> Ответчик </td> 
<td style="width:100px;"> Третье / иное лицо </td> 
<td style="width:100px;"> Истец </td> <td style="width:100px;"> Ответчик </td> 
</tr> 
<tr class="TableFontSize TableHorizontalPadding TableVerticalAlignMiddle TableColoredItemBackColor ">
<td style="text-align:center;"> 2012 </td> 
<td class="" style="text-align:center;"> 2 </td> 
<td class="" style="text-align:center;"> 1 </td> 
<td class="" style="text-align:center;"> 0 </td> 
<td style="text-align:right;"> 1 111 111 </td> 
<td style="text-align:right;"> 0 </td> 
</tr> 
<tr class="TableFontSize TableHorizontalPadding TableVerticalAlignMiddle TableColoredItemBackColor "> 
<td style="text-align:center;"> 2013 </td> 
<td class="" style="text-align:center;"> 2 </td> 
<td class="" style="text-align:center;"> 1 </td> 
<td class="" style="text-align:center;"> 0 </td> 
<td style="text-align:right;"> 2 252 804 </td> 
<td style="text-align:right;"> 0 </td> 
</tr> 
<tr class="TableFontSize TableHorizontalPadding TableVerticalAlignMiddle TableColoredItemBackColor "> 
<td style="text-align:center;"> 2014 </td> 
<td class="" style="text-align:center;"> 2 </td> 
<td class="" style="text-align:center;"> 1 </td> 
<td class="" style="text-align:center;"> 0 </td> 
<td style="text-align:right;"> 3 333 333 </td> 
<td style="text-align:right;"> 0 </td> 
</tr> 
</table> 
</td> 
</tr> 
</table> 
</td> 
</tr> 
<tr>
<td align='right' colspan="2"><a href='#fin0'>К
Код после сжатия пробелов:
Кликните здесь для просмотра всего текста
HTML5
1
<table class="CompanyInformationPadding" style="width:98%;" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td style="padding-bottom:10px;"> <table class="TableFontFamily TableBorder " border="1" style="border-collapse:collapse;" rules="all"> <tr class="TableHeaderFontSize TableAllAroundPadding TableHeaderBackColor " style="text-align:center;"> <td rowspan="2" style="width:100px; border-right-width:0px;"> Год </td> <td colspan="3"> Тип участия </td> <td colspan="2"> Сумма, руб. </td> </tr> <tr class="TableHeaderFontSize TableAllAroundPadding TableHeaderBackColor " style="text-align:center;"> <td style="width:100px;"> Истец </td> <td style="width:100px;"> Ответчик </td> <td style="width:100px;"> Третье / иное лицо </td> <td style="width:100px;"> Истец </td> <td style="width:100px;"> Ответчик </td> </tr> <tr class="TableFontSize TableHorizontalPadding TableVerticalAlignMiddle TableColoredItemBackColor "> <td style="text-align:center;"> 2012 </td> <td class="" style="text-align:center;"> 2 </td> <td class="" style="text-align:center;"> 1 </td> <td class="" style="text-align:center;"> 0 </td> <td style="text-align:right;"> 1 111 111 </td> <td style="text-align:right;"> 0 </td> </tr> <tr class="TableFontSize TableHorizontalPadding TableVerticalAlignMiddle TableColoredItemBackColor "> <td style="text-align:center;"> 2013 </td> <td class="" style="text-align:center;"> 2 </td> <td class="" style="text-align:center;"> 1 </td> <td class="" style="text-align:center;"> 0 </td> <td style="text-align:right;"> 2 252 804 </td> <td style="text-align:right;"> 0 </td> </tr> <tr class="TableFontSize TableHorizontalPadding TableVerticalAlignMiddle TableColoredItemBackColor "> <td style="text-align:center;"> 2014 </td> <td class="" style="text-align:center;"> 2 </td> <td class="" style="text-align:center;"> 1 </td> <td class="" style="text-align:center;"> 0 </td> <td style="text-align:right;"> 3 333 333 </td> <td style="text-align:right;"> 0 </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr><td align='right' colspan="2"><a href='#fin0'>К


Код поиска (js):
JavaScript
1
.*Ответчик[\s\<\>\/a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s(\d*)[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s([\d\s]+)[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d\s]+[\s\/\<\>a-zA-Z=""-:]+[\s\<\>\/a-zA-Z=""-:]+[\s\<\>\/a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s(\d*)[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s([\d\s]+)[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d\s]+[\s\/\<\>a-zA-Z=""-:]+[\s\<\>\/a-zA-Z=""-:]+[\s\<\>\/a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s(\d*)[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d]*[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s([\d\s]+)[\s\/\<\>a-zA-Z=""-:]+\;\"\>\s[\d\s]+[\s\/\<\>a-zA-Z=""-:]+[\s\<\>\/a-zA-Z=""-:]+
Где тестирую:
http://regex101.com/#javascript

Как выглядит сама таблица - см. вложение.
Миниатюры
Regex - не найдена строка в таблице  
0
307 / 284 / 102
Регистрация: 06.05.2014
Сообщений: 861
28.10.2014, 09:56
Предоставленный вами образец входного текста не будет работать с вашим кодом. Дело в том, что в нём отсутствует текст "Арбитражные дела</h1>", и поэтому IndexOf вернёт -1, а для Substring нельзя использовать значение параметра меньше единицы - как следствие, получите исключение.

Я не просил вас показывать целиком исходный текст, я только попросил показать, что находится в переменной abrezstring. Не поймите меня не правильно, я не придираюсь, просто хочу помочь, но для этого мне нужно знать что именно выберет Regex из строки в этой переменной.
0
 Аватар для Kir@
90 / 58 / 7
Регистрация: 07.02.2010
Сообщений: 732
28.10.2014, 10:12  [ТС]
HTML5
1
<table class="CompanyInformationPadding" style="width:98%;" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td style="padding-bottom:10px;"> <table class="TableFontFamily TableBorder " border="1" style="border-collapse:collapse;" rules="all"> <tr class="TableHeaderFontSize TableAllAroundPadding TableHeaderBackColor " style="text-align:center;"> <td rowspan="2" style="width:100px; border-right-width:0px;"> Год </td> <td colspan="3"> Тип участия </td> <td colspan="2"> Сумма, руб. </td> </tr> <tr class="TableHeaderFontSize TableAllAroundPadding TableHeaderBackColor " style="text-align:center;"> <td style="width:100px;"> Истец </td> <td style="width:100px;"> Ответчик </td> <td style="width:100px;"> Третье / иное лицо </td> <td style="width:100px;"> Истец </td> <td style="width:100px;"> Ответчик </td> </tr> <tr class="TableFontSize TableHorizontalPadding TableVerticalAlignMiddle TableColoredItemBackColor "> <td style="text-align:center;"> 2013 </td> <td class="" style="text-align:center;"> 2 </td> <td class="" style="text-align:center;"> 1 </td> <td class="" style="text-align:center;"> 0 </td> <td style="text-align:right;"> 2 252 804 </td> <td style="text-align:right;"> 0 </td> </tr> </table> </td> </tr> </table> </td> </tr> <tr><td align='right' colspan="2"><a href='#fin0'>К
Добавлено через 1 минуту
Вот тут работа regex с текстом:
http://regex101.com/r/pY6qX2/1

Добавлено через 31 секунду
В приведенном выше тексте только одна строка, по ссылке - 3 строки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2014, 10:12
Помогаю со студенческими работами здесь

Группировка строка в таблице списка
Всем доброго времени суток. Как сделать так, чтобы строки с одинаковой датой и временем группировались в одну?

Phpmysql не удаляется строка в таблице
Доброго времени суток, помогите новичку) проблема в следующем в одной из таблиц в базе данных не удаляется строка, а именно: если я...

Лишняя строка в таблице заказов
Помогите пожалуйста как убрать первую строку? Вот код:&lt;form action=&quot;index.php?view=update_cart&quot; method=&quot;post&quot;...

Появляется новая строка в таблице Word
Я хочу создать копию первой таблицы. Добавляю вторую новую таблицу: tb2 = doc.Tables.Add(doc.Paragraphs.Range, n + 4, 6); После этого...

Создается лишняя строка в Таблице данных
Доброго времени суток! У меня такая проблема: создается лишняя строка в таблице данных со значением &quot;1&quot; (картинка прилагается)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru