Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 06.01.2015
Сообщений: 10

Регулярные выражения. Парсинг блоков

06.01.2015, 21:20. Показов 886. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Пытаюсь написать регулярное выражение для решения следующей задачи:

в некотором файле имеются блоки. Каждый блок имеет имя и тип. Внутри блока могут быть ещё блоки с именем и типом. Блоки начинаются с знака "{" и заканчиваются знаком "}" (как на языке C). Написать регулярное выражение для получения типа, имени и соответствующих данных блоков первого уровня.

Пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
тип1 имя_блока1 
{
    //данные блока 1
    тип2 имя_блока_2
    {
         //данные блока 2
         тип3 имя_блока_3
         {
          //данные блока 3
         }
    }   
}
 
//Какие-то еще данные...
 
тип1 имя_блока_4
{
     //данные блока 4
     тип2 имя_блок_5
     {
         //данные блока 5
     }
}
После применения Regex с регулярным выражением, должно получиться:
Тип: тип1;
Имя: имя_блока_1;
Данные блока:
C#
1
2
3
4
5
6
7
8
9
 //данные блока 1
    тип2 имя_блока_2
    {
         //данные блока 2
         тип3 имя_блока_3
         {
          //данные блока 3
         }
    }
Тип: тип1;
Имя: имя_блока_4;
C#
1
2
3
4
5
6
Данные блока:
    //данные блока 4
     тип2 имя_блок_5
     {
         //данные блока 5
     }
P.S. Весь день бьюсь с этой задачей, но регулярку написать так и не получилось. Если возможно, помогите.
Если задачу с помощью регулярки решить нельзя, то как быть? Писать свой парсер? Если есть, что-то толковое посоветуйте направление, пожалуйста. Спасибо!

Добавлено через 43 минуты
up.
Что совсем никак?

Добавлено через 32 минуты
Походу, никто не поможет старому Никсу! Придётся применять кастыльно-ориентированный подход.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.01.2015, 21:20
Ответы с готовыми решениями:

Регулярные выражения
1. In the end - Linkin Park (Hybrid Theory); 3:15; Alternative Rock, Rock Есть такая строка, мне нужно вырезать только название трека до...

Регулярные выражения
Есть тект в стедующем формате: Вопрос в одну или две строки. Обязательно заканчивается '?'. Ответы с новой строки. Каждый ответ с...

Регулярные выражения
помогите составить регулярное выражение, чтобы искал в тексте только ссылки по типу https://сайт.com/любое/

2
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
06.01.2015, 22:03
https://www.cyberforum.ru/csha... ost7071750

99% вашей задачи решается этой регуляркой.
1
0 / 0 / 1
Регистрация: 06.01.2015
Сообщений: 10
07.01.2015, 00:03  [ТС]
Ааа!!! Понятно. Скрытые чертоги регекса! Спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.01.2015, 00:03
Помогаю со студенческими работами здесь

Регулярные выражения
string pattern = @""; Regex regex = new Regex(pattern); if (richTextBox.SelectionStart != 0) { string line = richTextBox.Lines;...

Регулярные выражения
Здравствуйте, подскажите, как "сказать" регулярному вырожению, что определенный набор символов - это слово: Regex rx = new...

Регулярные выражения
Не понимаю регулярных выражения, поэтому прошу помочь. Есть 3 задания, без регулярных сделал бы, но надо с ними 1) Ввести строку...

Регулярные выражения C#
Здравствуйте, у меня такая проблема. У меня есть ФИО человека, записанное в развернутом виде, мне нужно с помощью регулярных выражений...

Регулярные выражения
Привет, нужна помощь в создании шаблона поиска определенных строк, с помощью регулярных выражений. Есть такая строка EL0_comp_ID17272 :...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru