|
|
![]() [Перевод] Работа с Unicode в регулярных выражениях: графемы, категории, письменностиПятница, 27 Января 2023 г. 15:15 (ссылка)
Unicode – это набор символов, целью которого является определение всех символов и глифов всех человеческих языков, живых и мертвых. Поскольку всё больше и больше программ должны поддерживать несколько языков или просто любой язык, юникод в последние годы приобретает всё большую популярность. Использование различных наборов символов для разных языков может быть слишком обременительным для программистов и пользователей. Читать далееhttps://habr.com/ru/post/713256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=713256
![]() [Перевод] Работа с Unicode в регулярных выражениях: графемы, категории, письменностиПятница, 27 Января 2023 г. 15:15 (ссылка)
Unicode – это набор символов, целью которого является определение всех символов и глифов всех человеческих языков, живых и мертвых. Поскольку всё больше и больше программ должны поддерживать несколько языков или просто любой язык, юникод в последние годы приобретает всё большую популярность. Использование различных наборов символов для разных языков может быть слишком обременительным для программистов и пользователей. Читать далееhttps://habr.com/ru/post/713256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=713256
![]() Рекурсивные регулярные выраженияПятница, 21 Января 2023 г. 02:08 (ссылка)
Принялось решение добавить регулярные выражения в свой язык программирования. По началу я подумал, что мне совершенно незачем в них разбираться и в интернете, наверняка, уже есть полно готовых библиотек. Стал искать, нашёл какие-то осколки кода на С++, которые ничего не дают. Пришлось самому разобраться, что такое регулярные выражения тут. Ради спортивного интереса, я решил сделать свою библиотеку на С++. Стал делать и подумал, а почему бы мне не добавить туда своих тараканов. Я решил добавить две конструкции: {namesubexpression} - вызов под выражения по имени "namesubexpression", Само описание под выражения может встречаться в любом месте структуры регулярного выражения и игнорируется при поиске, подобно закоментированым: (#MeComment). Конечно, я сделал стадию валидации и такие поисковые конструкции просто не допустятса в поисковую машину. Также валидацию не пройдет выражение, которое содержит в себе вызов не описанного под выражения. Вот пример текста, который можно спарсить рекурсивным регулярным выражением (РРВ): Я также решил добавить три зарезервированные конструкции: https://habr.com/ru/post/711942/?utm_source=habrahabr&utm_medium=rss&utm_campaign=711942
![]() Применение регулярных выражений для обработки данныхПонедельник, 26 Декабря 2022 г. 10:57 (ссылка)
История создания регулярных выражений берет свое начало с 1942 года. В то время Уолтер Питтс — американский логик, работавший, в основном, в области когнитивной психологии, работал с известным физиологом Уорреном МакКаллоком. Основой их работы были труды связанные с теоретическим построением нейронных сетей. Немного позже, американский математик Стивен Клини изучал события в сетях МакКаллока-Питтса и предложил способ описания таких событий при помощи языка регулярных выражений. Работа Клини вышла в середине 50-х годов двадцатого века. Научные труды были бы забыты, но американский программист Кен Томпсон в конце 60-х годов обнаружил, что регулярные выражения можно использовать для задания шаблонов поиска строк в длинных текстах. Смысл поиска заключается в том, что регулярное выражения преобразуется в конечный автомат, который производит поиск строк, которые должны соответствовать определенным шаблонам. Для построения конечного автомата Томпсон придумал специальный алгоритм, который сейчас носит название «построение Томпсона». Таким образом Кен Томпсон смог принести в мир стандарт для задания поисковых шаблонов. Сами по себе, регулярные выражения есть ни что иное, как текстовый шаблон, который соответствует какому-то тексту. В трудах Джеффри Фридла пишется, что: «Регулярные выражения— это мощнейший инструмент, хорошо известный программистам. Однако он может быть полезен не только программистам, но и всем людям, работающим с кодом или простым текстом». При использовании регулярных выражений человеку придется работать с литералами и метасимволами. Это два существенно различающихся по своей сущности понятия. Литералы – это обычные символы, т.е. при записи в строках регулярного выражения они интерпретируются так, как они записаны. Примером литералов в регулярных выражениях может быть любая буквенная последовательность. В свою очередь, метасимволы интерпретируются при поиске особым образом. Примером может служить символ «*», который задает последовательность любого количества литералов. Читать далееhttps://habr.com/ru/post/707640/?utm_source=habrahabr&utm_medium=rss&utm_campaign=707640
![]() Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?Четверг, 03 Ноября 2022 г. 15:09 (ссылка)
Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-атакам. Читать далееhttps://habr.com/ru/post/697294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697294
![]() Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?Четверг, 03 Ноября 2022 г. 15:09 (ссылка)
Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-атакам. Читать далееhttps://habr.com/ru/post/697294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697294
![]() Декомпозируем регулярные выраженияПонедельник, 17 Октября 2022 г. 09:49 (ссылка)
Хороший код читается легко, как проза. Многие книги учат нас тому, как важно делить код на небольшие, повторно используемые, легко потребляемые блоки. Но почему-то, в случае с регэкспами у программистов как будто появляется слепое пятно на чувстве стиля. Вот такая регулярка – совершенно обычное дело:
https://habr.com/ru/post/693622/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693622
![]() Декомпозируем регулярные выраженияПонедельник, 17 Октября 2022 г. 09:49 (ссылка)
Хороший код читается легко, как проза. Многие книги учат нас тому, как важно делить код на небольшие, повторно используемые, легко потребляемые блоки. Но почему-то, в случае с регэкспами у программистов как будто появляется слепое пятно на чувстве стиля. Вот такая регулярка – совершенно обычное дело:
https://habr.com/ru/post/693622/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693622
![]() Регулярки (regex) — основы для решения кейсов, про которые не пишут в статьях про основыВоскресенье, 16 Октября 2022 г. 13:01 (ссылка)
"Там просто регулярку написать" - говорили они... Читать далееhttps://habr.com/ru/post/693586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693586
![]() Регулярки (regex) — основы для решения кейсов, про которые не пишут в статьях про основыВоскресенье, 16 Октября 2022 г. 13:01 (ссылка)
"Там просто регулярку написать" - говорили они... Читать далееhttps://habr.com/ru/post/693586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693586
![]() [Перевод] Пример Django Admin Stacked Inline: отношения многие-к-одному и многие-ко-многимПонедельник, 26 Сентября 2022 г. 21:27 (ссылка)
Django Admin — довольно мощный инструмент при работе с данными в стиле CRUD (создание, чтение, модификация, удаление). Одна из особенностей, о которой многие (даже опытные) разработчики не подозревают, — это наличие нескольких строк «many-one» или «many-to-many» на одной странице. Читать далееhttps://habr.com/ru/post/690274/?utm_source=habrahabr&utm_medium=rss&utm_campaign=690274
![]() PowerShell: проверка совмещения имен БЭМ-сущностей на одном HTML-узлеПятница, 23 Сентября 2022 г. 09:45 (ссылка)
При написании HTML-страницы по методологии БЭМ («Блок, Элемент, Модификатор») БЭМ-сущности привязываются к узлам HTML-дерева. В предыдущих статьях я рассматривал, как можно выполнить в скрипте на языке PowerShell проверку правильности написания названий БЭМ-сущностей по отдельности с помощью регулярных выражений. В этой статье рассмотрено, какие есть правила для совмещения нескольких имен БЭМ-сущностей на одном узле HTML-дерева и как соблюдение этих правил можно проверить в скрипте на языке PowerShell. Приведены иллюстрации фрагментов результатов работы скрипта в разных случаях, при обнаружении разных ошибок. Читать далееhttps://habr.com/ru/post/689762/?utm_source=habrahabr&utm_medium=rss&utm_campaign=689762
|
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |