![]() 6565 / 2211 / 344
Регистрация: 10.12.2013
Сообщений: 7,615
|
|||||||||||
Самодокументирующийся REGEX09.10.2022, 15:24. Показов 995. Ответов 3
Метки нет Все метки)
(![]() Решение
Предположим, есть длинный развесистый regex;
Но для примера возьмём попроще, неразвесистый; надо поймать: СЛОВО ~ ДВА ПРОБЕЛА ~ ЦИФРЫ ~ ТИРЕ ~ ЦИФРЫ КИЛЬКА 12345-698760 приступаем:
Как видите, кроме того, что подшаблоны сведены в столбик, они ещё разнесены по времени исполнения; и есть возможность передачи параметров в подпрограмму. Не знаю, когда это пригодится, но показалось интересным. ставьте лайки, пишите комментарии ) PS: есть и другой способ вызова подпрограмм внутри regex, основанный на строковой интерполяции, но первый поинтересней. Кликните здесь для просмотра всего текста
2
|
09.10.2022, 15:24 | |
Ответы с готовыми решениями:
3
Не работают regex Самодокументирующийся код |
50 / 35 / 9
Регистрация: 13.06.2019
Сообщений: 208
|
|
13.10.2022, 08:36 | |
Познавательно ))
Особенно ценно напоминание про #!perl -n )) но логика /\G(...)/g; /\G(...)/g вот так вот просто не заработала. если последние один или более регэкспов применимы к началу строки, то итог оказывается истина (иногда! - почему?..). С другой стороны, итог оказывается ложь, если имеются символы перед началом правильной последовательности. Вот такое, вроде бы, работает /.*re1/g; /\Gre2/g. Если просто первую \G убрать (а .* не добавить) - это все проблемы не решит.
0
|
Супер-модератор
![]() ![]() ![]() |
|
13.10.2022, 10:10 | |
Очень одобряю! И у меня были подобные мысли.
0
|
321 / 46 / 11
Регистрация: 08.04.2022
Сообщений: 177
|
|
13.10.2022, 20:41 | |
Красиво, но неудобно, хотя это дело вкуса.
При первом прочтении вашего поста я вспомнил свои эксперименты с модулем Pegex. Это классная штука для реализации существующих и новых ЯП. Я думал, что модуль использует эту же технику, но нет: недавно посмотрел в его внутренности - там веселые регекспы в стиле БНФ как элементы многоуровневых хешей.
0
|
13.10.2022, 20:41 | |
Помогаю со студенческими работами здесь
4
std::regex и boost::regex
Regex \cX, \cx Regex Regex \e Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
dev-c++5.11 Продолжаю движение.
russiannick 08.06.2025
Казалось, день прошел впустую. Просмотрел кучу видео и только потом заметил заголовок - уроки си. Искусители сбивали новичка с пути с++. Так легко ошибиться когда вокруг столько яп содержащих в. . .
|
Квантовые алгоритмы и обработка строк в Q#
EggHead 07.06.2025
Квантовые вычисления перевернули наше представление о том, как работать с данными, а Q# стал одним из ключевых языков для разработки квантовых алгоритмов. В традиционых системах мы оперируем битами —. . .
|
NUnit и C#
UnmanagedCoder 07.06.2025
В . NET существует несколько фреймворков для тестирования: MSTest (встроенный в Visual Studio), xUnit. net (более новый фреймворк) и, собственно, NUnit. Каждый имеет свои преимущества, но NUnit. . .
|
с++ Что нового?
russiannick 06.06.2025
Продолжаю обзор dev-cpp5. 11. Посмотрев на проекты, предоставленные нам для обучения, становится видно, что они разные по содержащимся файлам
где:
. dev обязательно присутствует
. cpp/ . c один из них. . .
|
WebAssembly в Kubernetes
Mr. Docker 06.06.2025
WebAssembly изначально разрабатывался как бинарный формат инструкций для виртуальной машины, обеспечивающий высокую производительность в браузерах. Но потенциал технологии оказался гораздо шире - она. . .
|
Как создать первый микросервис на C# с ASP.NET Core, step by step
stackOverflow 06.06.2025
Если говорить простыми словами, микросервисная архитектура — это подход к разработке, при котором приложение строится как набор небольших, слабо связанных сервисов, каждый из которых отвечает за. . .
|
Рисование коллайдеров Box2D v2 на Three.js с помощью порта @box2d/core
8Observer8 06.06.2025
Используется порт Box2D v2 под названием @box2d/ core - пакет NPM. Загрузил документацию Box2D v2 на Netlify: https:/ / box2d-v2-docs. netlify. app/ Документацию Box2D v2 можно скачать с официального. . .
|
Как создать стек в Python
AI_Generated 05.06.2025
Как архитектор с более чем десятилетним опытом работы с Python, я неоднократно убеждался, что знание низкоуровневых механизмов работы стеков дает конкурентное преимущество при решении сложных задач. . . .
|
Server-Sent Events (SSE) в Node.js
run.dev 05.06.2025
Потоковая передача данных с сервера прямо в браузер стала повседневной потребностью - от биржевых графиков и спортивных трансляций до чатов и умных дашбордов. Много лет разработчики полагались на. . .
|
Создаем RESTful API на Golang с Fiber
golander 04.06.2025
Я перепробовал десятки фреймворков для создания RESTful API за последние годы, и когда впервые столкнулся с Fiber, понял, что это совсем другой уровень. Нет, я не собираюсь рассказывать сказки о. . .
|