Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?

Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-атакам. Читать далее…

Декомпозируем регулярные выражения

Хороший код читается легко, как проза. Многие книги учат нас тому, как важно делить код на небольшие, повторно используемые, легко потребляемые блоки. Но почему-то, в случае с регэкспами у программистов как будто появляется слепое пятно на чувстве стил…

[Перевод] Пример Django Admin Stacked Inline: отношения многие-к-одному и многие-ко-многим

Django Admin — довольно мощный инструмент при работе с данными в стиле CRUD (создание, чтение, модификация, удаление). Одна из особенностей, о которой многие (даже опытные) разработчики не подозревают, — это наличие нескольких строк «many-one» или «man…

PowerShell: проверка совмещения имен БЭМ-сущностей на одном HTML-узле

При написании HTML-страницы по методологии БЭМ («Блок, Элемент, Модификатор») БЭМ-сущности привязываются к узлам HTML-дерева. В предыдущих статьях я рассматривал, как можно выполнить в скрипте на языке PowerShell проверку правильности написания названи…

PowerShell: распознавание БЭМ-сущностей на HTML-странице

Распознавание типов БЭМ-сущностей (блок, элемент, разные виды модификаторов) в скрипте на языке PowerShell с помощью простых регулярных выражений. Предполагается, что скрипт получает файл с кодом на языке HTML, разбирает его (парсит) и определяет типы …

PowerShell: классическая схема именования в БЭМ и регулярные выражения

В методологии БЭМ, которую используют для создания сайтов, существует соглашение (схема) по именованию классов CSS (БЭМ-сущностей), которые привязывают к HTML-элементам HTML-дерева. Я рассматриваю классическую схему именования классов CSS по методологи…

[Перевод] Как работают регулярные выражения, или Движок regex с анимацией

К старту курса по Fullstack-разработке на Python показываем, как работают регулярные выражения, на примере их движка с визуализацией, которую вы видите на КДПВ. Под катом подробности и код. Читать далее…

Создание языка программирования. часть 1

Эта серия статей является гайдом, который пишется параллельно с проектом pHoney. Этот гайд не несет какой-либо цели, просто чтобы новички впитывали мой опыт, а олды закутались в одеяло и приготовили себе чай или какао. Спасибо Читать…