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

Регулярное выражение для считывания из конфиг-файла

11.11.2017, 16:19. Показов 1068. Ответов 6

Студворк — интернет-сервис помощи студентам
Есть конфиг-файл по типу Ключ=Значение такого содержания:
Code
1
2
3
4
5
6
7
FolderName= Папка
RequisiteName= Реквизит
FileNameToWrite= TrainingFile
PathToWrite= C:\Users\User\Documents\Folder\
LastDate= 10.11.2017
RegExpress= (([А-ЯЁ][а-яё]+)\s([А-ЯЁ][а-яё]+|контактное|поддержки)(\s|\,)([А-ЯЁ][а-яё]+\,|\S?))\s((0[1-9]|[12]\d|3[01])\.(0[1-9]|1[0-2])\.(20[1-9]\d))\s(([01]\d|2[0-3]):([0-5][0-9]):([0-5][0-9]))
...
Пробел после знака равно потому, что туплю как считать без него.

Написал 2 регулярки:

// Регулярка для вытягивания Ключей (имен переменных)
RequisiteRegExpress = '(^[A-Z][A-Z|a-z]+|([A-Z].+(?=\=)))'

// Регулярка для вытягивания Значений
ValueRegExpress = '((?=\s).+\n)'

Подскажите как их можно упростить или изменить? Желательно чтобы в конфиг-файле не было пробелов.
Ключ всегда является именем переменной, Значение - любым видом информации.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2017, 16:19
Ответы с готовыми решениями:

Регулярное выражение для разбора даты
Привет! Есть дата в формате P1Y2M10D: P - начало строки 1Y - 1 год 2M - 2 месяца 10D - 10 дней Любая составляющая, кроме...

Регулярное выражение для удаления html entities
Как в тексте заменить вот такие данные "& # 9 9 8 9 ;" (эмодзи, специально пробелами здесь разбил а то выводится как эмодзи) пустой...

Регулярное выражение для извлечения строк из кода на python
Всем доброго времени суток! Нужно из исходного кода на python посредством утилитки на C# извлечь все строки. Проблема заключается в...

6
burning1ife
 Аватар для kenny69
1466 / 1287 / 294
Регистрация: 21.09.2008
Сообщений: 3,438
Записей в блоге: 9
11.11.2017, 16:29
А зачем здесь регулярка? Просто разделить с помощью Split("="), на части, в первом элементе массива будет ключ, во втором - значение
0
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 4
11.11.2017, 16:37  [ТС]
Такую вот задачку поставили.
0
 Аватар для worldown
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
11.11.2017, 17:44
DetectiveAshe,
И ключи и значение, без пробелов, по разным группам:
Bash
1
(.+)=(?:\s|)(.+)
Ключ:
Bash
1
(.+)=
Значение:
Bash
1
.+=(?:\s|)(.+)
0
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 4
11.11.2017, 21:16  [ТС]
worldown,
Которая по ключу, захватывает знак "равно", но это не страшно, можно добавить в конец (?=\=)
Которая по значению захватывает вообще все что до и после знака "равно"
0
 Аватар для worldown
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
11.11.2017, 21:48
DetectiveAshe, в отдельную группу захватывается все что находится в круглых скобках, кроме ( ? : ) тут будет исключено запись в отдельную группу
Добавлено. Хотя надо заново проверить...

Добавлено через 11 минут
Ключ
Bash
1
(.+)=(?:.+)
Значение
Bash
1
(?:.+)=(?:\s|)(.+)
Оба
Bash
1
(.+)=(?:\s|)(.+)
Добавлено через 16 минут
Еще вариант , захватывающий ключ без значения:
ключ
Bash
1
(\w+)=
значене
Bash
1
\w+=(?:\s|)(.+|)
оба
Bash
1
(\w+)=(?:\s|)(.+|)
0
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 4
18.11.2017, 09:54  [ТС]
worldown, Спасибо! Разобрался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.11.2017, 09:54
Помогаю со студенческими работами здесь

Регулярное выражение для пароля
состояшего, как минимум, из 8 символов и включающего в себя, по крайней мере, одну цифру, одну строчную и одну прописную буквы. Как надо...

Парсинг, подберите регулярное выражение для газпромбанка
есть простая консольная программка для парсинга сайта газпромбанка , с целью получить курсы валют, в приведенном примере регулярка не...

Не получается сформировать регулярное выражение для RegularExpressionValidator
Привет товарищи, подсобите пожалуйста. Мне нужно регулярку добавить в валидатор приведенный ниже ...

[WPF] Регулярное выражение для ввода только чисел
Здравствуйте. Столкнулся с проблемой, пожалуйста, помогите решить. Куда на wpf в textbox написать регулярное выражение, позволяющее...

Регулярное выражение для проверки имени файла
Доброе время суток! Помогите пожалуйста написать регулярное выражение, которое будет проверять открываемый файла только с указанным...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru