zhub.link is one of the many independent Mastodon servers you can use to participate in the fediverse.

Administered by:

Server stats:

28
active users

#regex

0 posts0 participants0 posts today
Konstantin :C_H:<p>Mastodon's Formatting of Shortened Links May Break Your Parser (It broke mine…)</p><p>Read more below 🧵</p><p><a href="https://infosec.exchange/tags/Coding" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Coding</span></a> <a href="https://infosec.exchange/tags/Programming" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Programming</span></a> <a href="https://infosec.exchange/tags/RegEx" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>RegEx</span></a> <a href="https://infosec.exchange/tags/InfoSec" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>InfoSec</span></a> <a href="https://infosec.exchange/tags/CyberSecurity" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>CyberSecurity</span></a> <a href="https://infosec.exchange/tags/Hacking" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>Hacking</span></a> <a href="https://infosec.exchange/tags/CVE" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>CVE</span></a> <a href="https://infosec.exchange/tags/CveCrowd" class="mention hashtag" rel="nofollow noopener noreferrer" target="_blank">#<span>CveCrowd</span></a></p>
Habr<p>Цикл в RegEx для поиска подстрок с условием</p><p>Я хочу поделиться своим изобретением, которое позволяет вам использовать только одно регулярное выражение, которое будет искать подстроку в строке с определенным условием. Если хотите, называйте это циклом в RegEx, которого раньше не существовало! Я поделюсь с вами не только разными полезными шаблонами, но и покажу различные примеры от простых до сложных. Посмотреть идеи и шаблоны</p><p><a href="https://habr.com/ru/articles/873832/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/873832/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/RegEx" class="mention hashtag" rel="tag">#<span>RegEx</span></a> <a href="https://zhub.link/tags/regexp" class="mention hashtag" rel="tag">#<span>regexp</span></a> <a href="https://zhub.link/tags/substring" class="mention hashtag" rel="tag">#<span>substring</span></a> <a href="https://zhub.link/tags/%D0%BF%D0%BE%D0%B4%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>подстроки</span></a> <a href="https://zhub.link/tags/%D1%86%D0%B8%D0%BA%D0%BB%D1%8B" class="mention hashtag" rel="tag">#<span>циклы</span></a> <a href="https://zhub.link/tags/loop" class="mention hashtag" rel="tag">#<span>loop</span></a> <a href="https://zhub.link/tags/%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>условие</span></a> <a href="https://zhub.link/tags/condition" class="mention hashtag" rel="tag">#<span>condition</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B5%D1%82%D0%B5%D0%BD%D0%B8%D0%B5" class="mention hashtag" rel="tag">#<span>изобретение</span></a> <a href="https://zhub.link/tags/%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B5%D1%82%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D0%B5%D0%BB%D0%BE%D1%81%D0%B8%D0%BF%D0%B5%D0%B4%D0%B0" class="mention hashtag" rel="tag">#<span>изобретение_велосипеда</span></a></p>
Habr<p>[Перевод] Шахматный движок на 84688 регулярных выражениях</p><p>В праздничные выходные мне пришло в голову, что я давно не занимался чем-то бессмысленным. Представляю вашем вниманию... Regex Chess : набор из 84688 регулярных выражений, которые при выполнении по порядку генерируют ход (валидный, то есть не совсем ужасный) для переданного в качестве входных данных состояния шахматной доски. [Прим. переводчика: здесь в оригинале статьи есть интерактивный виджет, позволяющий сыграть с движком.] Вот вся программа, которая делает ходы против игрока (серьёзно, я не шучу , она действительно такая короткая): let regex_list = [/* очень длинный список регулярных выражений */] let board = &quot;rnbqkbnr / pppppppp / 8 / 8 / 8 / 8 / PPPPPPPP / RNBQKBNR w KQkq - 0 1&quot;; for (regex of regex_list) { board = re.replace(regex.pattern, regex.target) } display(board) Прочитав этот пост, вы поймёте (надеюсь), как возможна эта последовательность регулярных* выражений, а также что делают конкретные регулярные выражения. * Снобы могут заявить что-то типа «Вы сказали, что будете использовать регулярные выражения, но они не регулярные !&quot; Но меня это не волнует. Как всегда, код проекта выложен на GitHub .</p><p><a href="https://habr.com/ru/articles/872186/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/872186/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> <a href="https://zhub.link/tags/%D1%88%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D0%BD%D1%8B%D0%B5_%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>шахматные_движки</span></a> <a href="https://zhub.link/tags/%D1%88%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B" class="mention hashtag" rel="tag">#<span>шахматы</span></a> <a href="https://zhub.link/tags/%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D0%B5_%D1%88%D0%B0%D1%85%D0%BC%D0%B0%D1%82%D1%8B" class="mention hashtag" rel="tag">#<span>компьютерные_шахматы</span></a></p>
Habr<p>[Перевод] Разбор регулярного выражения, проверяющего простоту чисел</p><p>Как-то я исследовал способы наиболее эффективного определения простоты числа и наткнулся на показанный выше код. Он меня заинтриговал. Хоть это, возможно, и не самый эффективный способ, но определённо один из наименее очевидных, поэтому мне стало любопытно. Каким образом соответствие регулярному выражению .?|(..+?)\1+ должно показать, что число не простое (после его преобразования в унарную систему счисления )? Если вы заинтересовались, продолжайте чтение, я проанализирую это регулярное выражение и объясню, что же в нём происходит. Объяснение не зависит от языка программирования, однако я приведу версии показанного выше Java -кода на Python , JavaScript и Perl и объясню, почему они немного различаются. Я объясню, как регулярное выражение ^.?$|^(..+?)\1+$ способно отфильтровывать все простые числа. Почему это выражение, а не .?|(..+?)\1+ (использованное в примере кода на Java )? Это связано с тем, как работает String.matches() , о чём я расскажу ниже. Хотя по этой теме есть несколько постов, я считаю, что они недостаточно глубоки и в них приводится лишь высокоуровневое объяснение, недостаточно хорошо излагающее важные подробности. В своей статье я попытаюсь объяснить подробности, чтобы их мог понять любой. Моя цель — сделать этот код понятным каждому, будь вы гуру регулярных выражений или впервые о них услышали.</p><p><a href="https://habr.com/ru/articles/856478/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/856478/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> <a href="https://zhub.link/tags/regexp" class="mention hashtag" rel="tag">#<span>regexp</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>регулярные_выражения</span></a> <a href="https://zhub.link/tags/%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%8B%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0" class="mention hashtag" rel="tag">#<span>простые_числа</span></a> <a href="https://zhub.link/tags/java" class="mention hashtag" rel="tag">#<span>java</span></a></p>
Habr<p>Регулярные выражения простыми словами. Часть 1</p><p>Разработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.</p><p><a href="https://habr.com/ru/companies/selectel/articles/848114/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/selectel</span><span class="invisible">/articles/848114/</span></a></p><p><a href="https://zhub.link/tags/selctel" class="mention hashtag" rel="tag">#<span>selctel</span></a> <a href="https://zhub.link/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> <a href="https://zhub.link/tags/regexp" class="mention hashtag" rel="tag">#<span>regexp</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>регулярные_выражения</span></a> <a href="https://zhub.link/tags/oarticle" class="mention hashtag" rel="tag">#<span>oarticle</span></a></p>
Habr<p>Что такое TDD. Создаем валидатор паролей на регулярках</p><p>Приветствую всех, в данной статье я кратко расскажу и покажу, что такое TDD на очень простом примере. Итак, представим себя разработчиком в вымышленной ИТ компании, перед которым стоит задача: написать валидатор пользовательских паролей, при этом стараясь следовать принципам TDD. Начнем разработку нашей программы с ознакомления с требованиями службы безопасности:</p><p><a href="https://habr.com/ru/articles/839404/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/839404/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/tdd" class="mention hashtag" rel="tag">#<span>tdd</span></a> <a href="https://zhub.link/tags/autotesting" class="mention hashtag" rel="tag">#<span>autotesting</span></a> <a href="https://zhub.link/tags/java" class="mention hashtag" rel="tag">#<span>java</span></a> <a href="https://zhub.link/tags/demo" class="mention hashtag" rel="tag">#<span>demo</span></a> <a href="https://zhub.link/tags/simple" class="mention hashtag" rel="tag">#<span>simple</span></a> <a href="https://zhub.link/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a></p>
Habr<p>regexp — большие гонки</p><p>Так или иначе сталкиваться с регулярными выражениями приходилось большинству разработчиков. Мое первое знакомство произошло с реализацией regex в STL std::regexp . Чаще всего регулярки используются в проверке входных данных, что-то вроде проверки корректности введенного пользователем URL, адреса IPv4, адреса IPv6, телефонного номера и при этом скорость выполнения операции regex не сильно влияет на время отклика от приложения. Но, что если вам приходится проверять сотни, тысячи или даже десятки тысяч правил и все это на постоянно меняющихся наборах входных данных в реальном времени? В этой ситуации вам не просто нужен быстрый алгоритм, вам понадобится лучший из них, вам понадобиться чемпион! Участвовать в заезде!</p><p><a href="https://habr.com/ru/articles/812953/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/812953/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> <a href="https://zhub.link/tags/hyperscan" class="mention hashtag" rel="tag">#<span>hyperscan</span></a> <a href="https://zhub.link/tags/re2" class="mention hashtag" rel="tag">#<span>re2</span></a> <a href="https://zhub.link/tags/boost" class="mention hashtag" rel="tag">#<span>boost</span></a> <a href="https://zhub.link/tags/boostregex" class="mention hashtag" rel="tag">#<span>boostregex</span></a> <a href="https://zhub.link/tags/stl" class="mention hashtag" rel="tag">#<span>stl</span></a></p>
Habr<p>Препарируем Wazuh. Часть 3: источники не из коробки</p><p>В предыдущей статье мы говорили о том, как можно подключить к Wazuh стандартные источники, идущие, что называется, «из коробки». С ними все относительно просто: выполняем действия, представленные в инструкции по подключению Wazuh на источнике, выполняем необходимые правки на стороне агента и все должно начать работать без проблем. Однако, в реальности все бывает не так просто. Во многих организациях есть самописное или сильно кастомизированное ПО, логи с которых SIEM не умеет нормализовывать. То есть по факту он просто незнаком с данным видом источников. Если такой нестандартный источник передает события по Syslog, то в SIEM, скорее всего, мы увидим событие практически в сыром виде. То есть поля, которые обычно заполняются при нормализации, в данном случае не будут заполнены. В этой статье мы поговорим о том, что можно сделать средствами Wazuh для нормализации событий с таких источников.</p><p><a href="https://habr.com/ru/companies/otus/articles/807949/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/otus/art</span><span class="invisible">icles/807949/</span></a></p><p><a href="https://zhub.link/tags/wazuh" class="mention hashtag" rel="tag">#<span>wazuh</span></a> <a href="https://zhub.link/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> <a href="https://zhub.link/tags/siem" class="mention hashtag" rel="tag">#<span>siem</span></a></p>
Habr<p>Covenantus detectus или ещё одна DS-задача</p><p>Привет, Хабр! Сегодня с вами участник профессионального сообщества NTA Серебренников Дмитрий. И по дружбе, и по IT‑службе регулярно сталкиваюсь с задачами Data Science. Решением одной из них планирую сегодня поделиться. Поработаю с кредитной документацией, выжму из неё необходимое для аудиторской проверки. Из инструментов применю ловкость рук, python, pathlib, regex, pandas и Abbyy Finereader. Итак, задача состояла в получении необходимых сущностей (ковенантов) из разных по формату и содержанию документов. Пост предназначен прежде всего для столкнувшихся с такой задачкой и тех, кто недавно взял курс в науку о данных. Кстати, о данных — все совпадения случайны, исследуемые материалы вымышлены. Covenantus detectus</p><p><a href="https://habr.com/ru/articles/781514/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="">habr.com/ru/articles/781514/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/pdf" class="mention hashtag" rel="tag">#<span>pdf</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0" class="mention hashtag" rel="tag">#<span>распознование_текста</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>регулярки</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>регулярные_выражения</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B0%D1%81%D0%BF%D0%BE%D0%B7%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" class="mention hashtag" rel="tag">#<span>распознование_изображений</span></a> <a href="https://zhub.link/tags/python" class="mention hashtag" rel="tag">#<span>python</span></a> <a href="https://zhub.link/tags/pathlib" class="mention hashtag" rel="tag">#<span>pathlib</span></a> <a href="https://zhub.link/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> <a href="https://zhub.link/tags/Abbyy_FineReader" class="mention hashtag" rel="tag">#<span>Abbyy_FineReader</span></a></p>
Habr<p>Регулярные выражения для технических писателей и не только</p><p>Однажды мы в</p><p><a href="https://habr.com/ru/companies/documentat/articles/780812/" target="_blank" rel="nofollow noopener noreferrer" translate="no"><span class="invisible">https://</span><span class="ellipsis">habr.com/ru/companies/document</span><span class="invisible">at/articles/780812/</span></a></p><p><a href="https://zhub.link/tags/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>регулярные_выражения</span></a> <a href="https://zhub.link/tags/%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BA%D0%B8" class="mention hashtag" rel="tag">#<span>регулярки</span></a> <a href="https://zhub.link/tags/regexp" class="mention hashtag" rel="tag">#<span>regexp</span></a> <a href="https://zhub.link/tags/regex" class="mention hashtag" rel="tag">#<span>regex</span></a> <a href="https://zhub.link/tags/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F" class="mention hashtag" rel="tag">#<span>документация</span></a> <a href="https://zhub.link/tags/%D0%B0%D0%B2%D1%82%D0%BE%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0" class="mention hashtag" rel="tag">#<span>автозамена</span></a></p>