Разработчики делятся на три типа: те, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой; те, кто все еще боится их и всячески избегает; и те, кто уже прочитал первую часть этой серии статей и полон оптимизма разобраться с этими магическими письменами. Эта статья специально для третьих, чтобы им было проще стать первыми.Читать полностью »
Рубрика «regexp»
Регулярные выражения простыми словами. Часть 2
2024-12-04 в 8:39, admin, рубрики: oarticle, regexp, selectel, Регулярные выраженияРазбор регулярного выражения, проверяющего простоту чисел
2024-11-13 в 7:38, admin, рубрики: java, regex, regexp, простые числа, Регулярные выраженияВведение
Как-то я исследовал способы наиболее эффективного определения простоты числа и наткнулся на следующий код:
public static boolean isPrime(int n) {
return !new String(new char[n]).matches(".?|(..+?)\1+");
}
Он меня заинтриговал. Хоть это, возможно, и не самый эффективный способ, но определённо один из наименее очевидных, поэтому мне стало любопытно. Каким образом соответствие регулярному выражению .?|(..+?)1+
должно показать, что число непростое (после его преобразования в унарную систему счисления)?
Использование ChatGPT для автоматизации генерации кода в JS-проекте
2024-10-15 в 13:05, admin, рубрики: chatgpt, grammy, javascript, llm, nodejs, regexp, teqfw, кодогенерацияВ своих предыдущих статьях о разработке телеграм-ботов я делился опытом создания базового функционала и работы с командами через аргументы (раз, два). На этапе подготовки третьей статьи передо мной встал вопрос генерации однотипного кода для новых команд, что превратилось в рутинную задачу. Чтобы избежать этого и ускорить процесс, я решил задействовать ChatGPT. К моему удивлению, его помощь оказалась значительно весомее, чем я ожидал.
Регулярные выражения простыми словами. Часть 1
2024-10-07 в 12:00, admin, рубрики: oarticle, regex, regexp, selctel, Регулярные выраженияРазработчики делятся на два типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой, и тех, кто все еще боится и всячески их избегает. Эта статья специально для вторых, чтобы им было проще стать первыми. Она либо поможет преодолеть «регекспофобию», либо усугубит ее. В любом случае, добро пожаловать под кат.Читать полностью »
Если вы отказались от регулярных выражений, то теперь у вас три проблемы
2023-04-10 в 16:00, admin, рубрики: regex, regexp, ruvds_перевод, Блог компании RUVDS.com, композиция, ненормальное программирование, парсеры, парсинг данных, Программирование, Регулярные выраженияИзвестная шутка программистов гласит, что если решение вашей проблемы включает в себя парсинг текста при помощи регулярного выражения, то теперь у вас есть две проблемы. Некоторые программисты, прочитав шутку, решают попробовать иной подход. Возможно, регулярные выражения не так уж нужны. Возможно, задачу можно решить простым split строки или чем-то подобным. Однако другие могут задуматься немного глубже и задаться вопросом: «А если я сделаю нечто настолько дерзкое, что в результате получу три проблемы?» Мой пост написан в таком духе!
В нём используется код на Python, однако его легко можно адаптировать под любой язык с поддержкой функций высшего порядка.
Читать полностью »
Хватит использовать [a-zа-яё]: правильная работа с символами и категориями Unicode в регулярных выражениях
2023-01-27 в 12:15, admin, рубрики: regex, regexp, Программирование, Разработка веб-сайтов, регулярное выражение, Регулярные выражения, Совершенный код, типографикаUnicode – это набор символов, целью которого является определение всех символов и глифов всех человеческих языков, живых и мертвых. Поскольку всё больше и больше программ должны поддерживать несколько языков или просто любой язык, юникод в последние годы приобретает всё большую популярность. Использование различных наборов символов для разных языков может быть слишком обременительным для программистов и пользователей.
К сожалению, юникод привносит свои требования и подводные камни, когда речь заходит о регулярных выражениях.
Поддержка юникод-совместимых регулярных выражений
JavaScript: изучаем регулярные выражения на практике
2021-07-05 в 12:00, admin, рубрики: cheatsheet, javascript, regex, regexp, regular expressions, tutorial, Блог компании Маклауд, памятка, Программирование, Разработка веб-сайтов, регулярка, регулярное выражение, шпаргалка
Регулярное выражение (далее также — регулярка) — это последовательность специальных символов, формирующих паттерн или шаблон (pattern), который сопоставляется со строкой.
Цель такого сопоставления может состоять либо в поиске подстроки в строке, например, для замены подстроки, либо в определении соответствия строки шаблону для валидации строки.
В данной статье мы сосредоточимся на валидации.
Что конкретно мы будем делать? Мы возьмем несколько регулярок из validator.js
(наиболее популярной библиотеки для валидации данных с помощью регулярных выражений) и произведем их подробный разбор. Также мы рассмотрим несколько дополнительных регулярок и один алгоритм.
Как результат, мы реализуем несколько полезных функций, которые вы впоследствии сможете использовать в своих проектах.
Скрываем часть номера телефона
2020-03-23 в 3:46, admin, рубрики: javascript, Phone, regexp, Регулярные выраженияПредставьте, что вам нужно скрыть часть номер под звездочками. Заменить +79999999999 на +799****9999 не трудно, а теперь представьте, что масок номеров не одна, а на много больше, номера эти как российские, так и канадские или любые другие. В этой функции я постарался захватить как можно больше номеров.
Читать полностью »
Профессиональный лексический анализ на регулярных выражениях
2019-08-07 в 6:11, admin, рубрики: algorithms, DFA, java, lexer, nfa, regex, regexp, syntax analysis, syntax highlight, tokenizer, tokenizing, Алгоритмы, Компиляторы, Программирование, Регулярные выраженияСинтаксический анализ текста всегда начинается с лексического анализа или tokenizing-а. Существует простой способ решить эту задачу практически для любого языка с помощью регулярных выражений. Еще одно применение старым добрым regexp-ам.
Собираем логи фаервола Mikrotik в базу данных
2018-10-20 в 18:44, admin, рубрики: logging, mikrotik, regexp, rsyslog, Настройка Linux, Сетевое оборудование, системное администрированиеДобрый день.
Хочу рассказать как легко и непринужденно можно настроить сервер сбора метаданных сетевого трафика для маршрутизаторов Микротик.
Цель: Целью будет, хранение «пережеванных» логов фаервола в базе данных, для последующего анализа.
Средства: Для реализации подойдет любой свежий дистрибутив Linux с rsyslogd v8 и выше, возможно предложенный синтаксис будет работать и на v7. Так же нам потребуется СУБД, я выбрал mariadb. Прирост БД будет варьироваться от количества журналируемых правил, потому размер накопителя на ваше усмотрение, в моем случае журналируются 30-40 правил, что в день составляет примерно 1200 тысяч строк. За месяц использования БД включая индексы выросла до 3,8Гб.
Механика: Маршрутизатор отправляет лог на удаленный сервер по UDP. Сервер rsyslog с помощью регулярных выражений проводит очистку строк от лишней информации, формирует SQL вставку и отправляет её в СУБД. СУБД, с помощью триггера до вставки, проводит дополнительную очистку и разделение полей, которые не удалось разобрать в rsyslog.
Читать полностью »