Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 428 сообщений
Cообщения с меткой

регулярные выражения - Самое интересное в блогах

Следующие 30  »
rss_habr

[Перевод] Работа с Unicode в регулярных выражениях: графемы, категории, письменности

Пятница, 27 Января 2023 г. 15:15 (ссылка)

Unicode – это набор символов, целью которого является определение всех символов и глифов всех человеческих языков, живых и мертвых. Поскольку всё больше и больше программ должны поддерживать несколько языков или просто любой язык, юникод в последние годы приобретает всё большую популярность. Использование различных наборов символов для разных языков может быть слишком обременительным для программистов и пользователей.

Читать далее

https://habr.com/ru/post/713256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=713256

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Работа с Unicode в регулярных выражениях: графемы, категории, письменности

Пятница, 27 Января 2023 г. 15:15 (ссылка)

Unicode – это набор символов, целью которого является определение всех символов и глифов всех человеческих языков, живых и мертвых. Поскольку всё больше и больше программ должны поддерживать несколько языков или просто любой язык, юникод в последние годы приобретает всё большую популярность. Использование различных наборов символов для разных языков может быть слишком обременительным для программистов и пользователей.

Читать далее

https://habr.com/ru/post/713256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=713256

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Рекурсивные регулярные выражения

Пятница, 21 Января 2023 г. 02:08 (ссылка)

Принялось решение добавить регулярные выражения в свой язык программирования. По началу я подумал, что мне совершенно незачем в них разбираться и в интернете, наверняка, уже есть полно готовых библиотек. Стал искать, нашёл какие-то осколки кода на С++, которые ничего не дают. Пришлось самому разобраться, что такое регулярные выражения тут. Ради спортивного интереса, я решил сделать свою библиотеку на С++.

Стал делать и подумал, а почему бы мне не добавить туда своих тараканов. Я решил добавить две конструкции:

{namesubexpression} - вызов под выражения по имени "namesubexpression",
($namesubexpression:BodyExpression) - описание под выражения с именем "namesubexpression".

Само описание под выражения может встречаться в любом месте структуры регулярного выражения и игнорируется при поиске, подобно закоментированым: (#MeComment).
Сразу же возникает проблема бесконечной рекурсии.
Вот пример рекурсивного регулярного выражения, который недопустим: ($E:{E}){E}

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

Вот пример текста, который можно спарсить рекурсивным регулярным выражением (РРВ): [[[[[A]]]]]
А вот его РРВ: ($RRE:\[({RRE}|A)\]){RRE}

Я также решил добавить три зарезервированные конструкции:
{:String} соответствует выражению: (("(\\.|[^"])*")|('(\\.|[^'])*'))
{:Digit} соответствует выражению: (-?[0-9]+.?[0-9]*[Ee]?-?[0-9]*)
{:Name} соответствует выражению: ([A-Za-z][A-Za-z0-9]*)
Но их поисковая система не использует структурные элементы аналогичных выражений, а организованна встроенным машинным поиском, который работает значительно быстрее и возвращает одну целую строку текста, в которой содержится всё тело найденного соответствия а не части для каждого компонента в аналогичных регулярных выражениях.

Читать далее

https://habr.com/ru/post/711942/?utm_source=habrahabr&utm_medium=rss&utm_campaign=711942

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Применение регулярных выражений для обработки данных

Понедельник, 26 Декабря 2022 г. 10:57 (ссылка)

История создания регулярных выражений берет свое начало с 1942 года. В то время Уолтер Питтс — американский логик, работавший, в основном, в области когнитивной психологии, работал с известным физиологом Уорреном МакКаллоком. Основой их работы были труды связанные с теоретическим построением нейронных сетей. Немного позже, американский математик Стивен Клини изучал события в сетях МакКаллока-Питтса и предложил способ описания таких событий при помощи языка регулярных выражений.

Работа Клини вышла в середине 50-х годов двадцатого века. Научные труды были бы забыты, но американский программист Кен Томпсон в конце 60-х годов обнаружил, что регулярные выражения можно использовать для задания шаблонов поиска строк в длинных текстах. Смысл поиска заключается в том, что регулярное выражения преобразуется в конечный автомат, который производит поиск строк, которые должны соответствовать определенным шаблонам. Для построения конечного автомата Томпсон придумал специальный алгоритм, который сейчас носит название «построение Томпсона». Таким образом Кен Томпсон смог принести в мир стандарт для задания поисковых шаблонов.

Сами по себе, регулярные выражения есть ни что иное, как текстовый шаблон, который соответствует какому-то тексту. В трудах Джеффри Фридла пишется, что: «Регулярные выражения— это мощнейший инструмент, хорошо известный программистам. Однако он может быть полезен не только программистам, но и всем людям, работающим с кодом или простым текстом». При использовании регулярных выражений человеку придется работать с литералами и метасимволами. Это два существенно различающихся по своей сущности понятия. Литералы – это обычные символы, т.е. при записи в строках регулярного выражения они интерпретируются так, как они записаны. Примером литералов в регулярных выражениях может быть любая буквенная последовательность. В свою очередь, метасимволы интерпретируются при поиске особым образом. Примером может служить символ «*», который задает последовательность любого количества литералов.

Читать далее

https://habr.com/ru/post/707640/?utm_source=habrahabr&utm_medium=rss&utm_campaign=707640

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

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

Четверг, 03 Ноября 2022 г. 15:09 (ссылка)

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

Читать далее

https://habr.com/ru/post/697294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697294

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

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

Четверг, 03 Ноября 2022 г. 15:09 (ссылка)

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

Читать далее

https://habr.com/ru/post/697294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697294

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

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

Понедельник, 17 Октября 2022 г. 09:49 (ссылка)

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

Но почему-то, в случае с регэкспами у программистов как будто появляется слепое пятно на чувстве стиля. Вот такая регулярка – совершенно обычное дело:

/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((19|20)\d\d)$/

А чо не так-то?

https://habr.com/ru/post/693622/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693622

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

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

Понедельник, 17 Октября 2022 г. 09:49 (ссылка)

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

Но почему-то, в случае с регэкспами у программистов как будто появляется слепое пятно на чувстве стиля. Вот такая регулярка – совершенно обычное дело:

/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((19|20)\d\d)$/

А чо не так-то?

https://habr.com/ru/post/693622/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693622

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Регулярки (regex) — основы для решения кейсов, про которые не пишут в статьях про основы

Воскресенье, 16 Октября 2022 г. 13:01 (ссылка)

"Там просто регулярку написать" - говорили они...

Читать далее

https://habr.com/ru/post/693586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693586

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Регулярки (regex) — основы для решения кейсов, про которые не пишут в статьях про основы

Воскресенье, 16 Октября 2022 г. 13:01 (ссылка)

"Там просто регулярку написать" - говорили они...

Читать далее

https://habr.com/ru/post/693586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693586

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Пример 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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<регулярные выражения - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda