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

  • ХабрахабрФото Технические лайфхаки для конкурсов

    Технические лайфхаки для конкурсов

    Казалось бы, чего что сложного может быть в проведении конкурсов в социальных сетях. Но на практике всё не так просто, как кажется на первый взгляд. Многие SMM-щики вынуждены проходить все круги ада, пока не автоматизируют максимум процессов при проведении нетипичных конкурсов. Поэтому хотим поделиться некоторыми из используемых нами технических лайфхаков. Конкурс прогнозов Что может быть проще, чем сбор цифорок в…

    Читать далее »
  • ХабрахабрФото [Перевод] Если вы отказались от регулярных выражений, то теперь у вас три проблемы

    [Перевод] Если вы отказались от регулярных выражений, то теперь у вас три проблемы

    Известная шутка программистов гласит, что если решение вашей проблемы включает в себя парсинг текста при помощи регулярного выражения, то теперь у вас есть две проблемы. Некоторые программисты, прочитав шутку, решают попробовать иной подход. Возможно, регулярные выражения не так уж нужны. Возможно, задачу можно решить простым split строки или чем-то подобным. Однако другие могут задуматься немного глубже и задаться вопросом: «А…

    Читать далее »
  • ХабрахабрФото К 8 марта — 8 женских докладов c наших конференций

    К 8 марта — 8 женских докладов c наших конференций

    Мы попросили нейросети изобразить ситуации «женщина-спикер на конференции разработчиков» и «Ада Лавлейс выкидывает подаренную сковородку, чтобы сосредоточиться на программировании». В середине XIX века, когда Чарльз Бэббидж изобрел свою аналитическую машину, исследовала ее возможности Ада Лавлейс. Она составила первую в мире программу (для этой машины), ввела в употребление термины «цикл» и «рабочая ячейка». Во время Второй мировой войны женщины сыграли решающую…

    Читать далее »
  • ХабрахабрФото [Перевод] REcollapse: фаззинг с использованием unicode-нормализации

    [Перевод] REcollapse: фаззинг с использованием unicode-нормализации

    ⚠ Дисклеймер ⚠ Данный инструмент/метод создан/описан[/переведён] исключительно для образовательных и этических целей тестирования. Использование данного инструмента для атаки целей без предварительного взаимного согласия является незаконным. Разработчики [и переводчики] не несут никакой ответственности и не отвечают за любое неправильное использование или ущерб, причиненный этим инструментом. В этом посте я расскажу о технике REcollapse. Я изучал её последние пару лет, чтобы обнаружить…

    Читать далее »
  • ХабрахабрФото [Перевод] Хватит использовать [a-zа-яё]: работа с символами и категориями Unicode в регулярных выражениях

    [Перевод] Хватит использовать [a-zа-яё]: работа с символами и категориями Unicode в регулярных выражениях

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

    Читать далее »
  • ХабрахабрФото Рекурсивные регулярные выражения

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

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

    Читать далее »
  • ХабрахабрФото Что такое катастрофический возврат и как регулярное выражение может стать причиной ReDoS-уязвимости?

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

    Регулярные выражения – очень полезный и удобный инструмент для поиска и замены текста. Однако в некоторых случаях они могут привести к зависанию системы или даже стать причиной уязвимости к ReDoS-атакам. Введение ReDoS является подтипом DoS-атаки. Цель ReDoS-атаки – остановить или сильно замедлить приложение посредством неэффективного регулярного выражения. ReDoS-атаки можно разделить на 2 типа: В приложение передается строка, содержащая опасный паттерн.…

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

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

    "Там просто регулярку написать" - говорили они.Хочу показать вам небольшой кейс/задачу, которую передо мной поставили. Суть - у нас есть лог (покажу самую интересную часть*), в котором много много разной информации (~100k-700k строк). Из этого лога нам нужно ~3% символов (именно, даже не строк). Затем, сделать таблички по полученным данным и визуализировать это всё. Делал я всё это на python,…

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

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

    Aydin Schwartz Студент магистратуры Data Science Университета Южной Флориды Регулярные выражения заслужили плохую репутацию. Кажется, при каждом упоминании они вызывают в воображении простыни текста, которые выглядят абсолютно бессмысленно. Вот, к примеру, известное выражение проверки корректности электронной почты: (?:[a-z0-9!#$%&'*+/=?^_`~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) Угу… Не претендую на то, что к концу статьи вы его поймёте, но покажу, что регулярки построены на простых правилах, понять которые…

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

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

    Aydin Schwartz Студент магистратуры Data Science Университета Южной Флориды Регулярные выражения заслужили плохую репутацию. Кажется, при каждом упоминании они вызывают в воображении простыни текста, которые выглядят абсолютно бессмысленно. Вот, к примеру, известное выражение проверки корректности электронной почты: (?:[a-z0-9!#$%&'*+/=?^_`~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) Угу… Не претендую на то, что к концу статьи вы его поймёте, но покажу, что регулярки построены на простых правилах, понять которые…

    Читать далее »


Кнопка «Наверх»