Обновить
16K+

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

Формальный язык поиска

5,68
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Англоязычные SEO-инструменты занижают русские тексты. Померили разрыв на 98 блоках

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели4.7K

Инструмент оценки цитируемости для ИИ-поиска поставил нашему сайту 31 из 100 и F почти всем блокам. Переписали рубрику под русский язык, не трогая веса и логику измерений: получили 42,5. Разрыв в 11,2 пункта собран из трёх регулярных выражений.

Читать далее

Новости

Искал пальмовое масло в 110 тысячах составов и нашёл его в витамине A. Почему поиск по слову врёт

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели4.6K

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

Читать далее

Промпт — не контракт: замерил, как часто модель нарушает жёсткие правила, и вынес их в код

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели5.7K

У меня в проде работает ИИ-консультант на сайте. У него есть два правила, которые нарушать нельзя вообще: не называть цены и не называть клиентов, которые под NDA. Оба правила были написаны в системном промпте капслоком, с объяснением почему.

Я замерил, как они соблюдаются. Получилось так:

Читать далее

Одна буква «Е», две раскладки и 87 тысяч составов

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели10K

Задача звучала просто: посчитать, у скольких товаров в базе есть в составе хоть одна Е-добавка. Я думал, это работа на полчаса. Работа заняла вечер, и большая часть вечера ушла на одну букву.

Читать далее

Как мы измеряли рекламные обещания регулярками и почему первая выгрузка соврала вдвое

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.6K

Нам понадобились свои данные о том, как устроены страницы, продающие франшизы. Не мнение, не подборка скриншотов, а числа, которые можно пересчитать через полгода и сравнить. Готовых датасетов по этой нише нет, поэтому мы написали скрипт: он забирает шестнадцать страниц, ищет на них набор признаков и складывает результат в JSON.

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

Читать далее

Из генерации — в переписку: доводим ответ ИИ‑агента до клиента и CRM на n8n

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели9.6K

Всем привет!) Напомню: в первой статье я показал дебаунс на Redis, который склеивает дробные сообщения клиента. Во второй — модуль привязки «чат = сделка» и то, почему вебхуки стоит держать в изолированных ключах. Обе части заканчиваются примерно одинаково: «...и текст уходит ИИ‑агенту». Это, пожалуй, тот финал, на котором обычно ставят точку и заливают демо на GitHub... Но не в данном случае!)

Читать далее

Рекурсия в RegEx с условиями выхода

Уровень сложностиСложный
Время на прочтение8 мин
Охват и читатели12K

Для создания подсветки синтаксиса мне требовалось регулярное выражение, которое может подсветить разные фрагменты пути. При этом оно должно следовать условию "только путь в кавычках" и обходить мимо переменные, продолжная парсинг пути.

В этой статье мы разберем, каким образом написать такое выражение, как работает рекурсия в RegEx, как добавить условие выхода из нее. Посмотрим, как пропускать целые фрагменты текста.

Читать далее

Атомарные регулярные выражения

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели12K

Регулярные выражение обладают возможностями отслеживания пройденного пути и рефлексией. Разберемся, как использовать эти возможности для захвата фрагментов текста, как применить к ним цвет и вывести в консоль с помощью AutoHotkey.

Читать далее

Сопоставление каталогов продукции: автоматический массовый подбор с использованием токенизации

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8.3K

Задача широко знакома в узких кругах: наш каталог товаров встречается с каталогом контрагента — по сути одни и те же позиции, но названы по-разному. Надо найти совпадения и предоставить коллегам список подходящих наших артикулов для каждой их позиции.

В разобранном ниже случае это картриджи: 22 тысячи записей у контрагента против сотен тысяч наших номенклатур. Для такой задачи матерый программист берёт Elasticsearch, алгоритмы нечёткого поиска и тратит много времени, иногда в меру матерясь. Здесь подбор ведется с помощью токенизации, запросами в стиле no-code и без ИИ.

Токенизируем и сопоставляем

Как я экономлю 80% контекста нейросетей при работе с логами

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.6K

Разаработанная фоновая утилита позволяет производить вставку сжатых логов с абсолютной прозрачностью для восприятия AI агентами. В статье описал свой путь к оптимизации сжатия до 80%.

Читать далее

Regex песочница

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели7.4K

В данной статье описывается процесс реализации песочницы для регулярных выражений с помощью платформы для контейнеризации Docker и утилит Linux. Цель - получить ограниченную среду, куда пользователь может подключиться по SSH и где у него будет минимум возможностей, чтобы он ничего не сломал, но мог свободно использовать регулярные выражения как со встроенными в среду txt заготовками, так и со своим произвольным пользовательским вводом.

Читать далее

Регулярные выражения в плагине «Аналитика» для Р7 офис

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.6K

Если обычный человек посмотрит на исходный код программы, написанный на популярных языках вроде JavaScript или Python, то по контексту и знакомым словам он сможет понять, что происходит. Но регулярные выражения со стороны похожи на случайный набор символов – будто кошка прошла по клавиатуре. В этом случае даже код на Ассемблере выглядит более читаемым.

Мы в «ЛАНИТ-Интеграции» не понаслышке знаем, как бывает сложно собрать воедино данные из нескольких источников, привести их к общему виду и создать на их основе единую таблицу с полным отчетом. Для решения этой задачи был создан плагин «Аналитика» для Р7-офис как инструмент автоматизации для выгрузки и обработки данных. В этой статье в блоге ЛАНИТ хочу рассказать вам о новых возможностях поиска данных в плагине в сочетании с функционалом RegExp (они же регулярные выражения или просто регулярки).

Читать далее

Парсить XML при помощи регулярных выражений нельзя… но давайте попробуем

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели6.5K

Парсинг HTML при помощи регулярных выражений — популярная ошибка и отличный пример использования неподходящего под задачу инструмента. Общепризнанно, что это плохая идея по множеству причин.

Существует знаменитый ответ на Stack Overflow о том, почему этого ни в коем случае не следует делать. На самом деле, этот ответ стал настолько популярным, что в определённых кругах используется, как копипаста. Каждый раз, когда я натыкаюсь на него, то думаю что он во многом справедлив... но в то же время, не могу согласиться с ним полностью...

Читать далее

Ближайшие события

Утилита Find и регулярные выражения

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели12K

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

Регулярки освоить нетрудно. Буквально за пару часов можно получить почти средний уровень владения и научиться читать и писать выражения для поиска ip-адресов, e-mail, html-тегов, телефонных номеров, дат и прочих несложных конструкций. Я думаю, все это вам знакомо, но на всякий случай в конце статьи я добавил несколько ссылок для изучения.

Я уже прошел «курс молодого бойца» по регуляркам, написал свою, вставил в find, и она не сработала. Но пойдем по порядку.

Читать далее

Регулярные выражения простыми словами. Часть 3

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели18K

Разработчики делятся на три типа: тех, кто уже понимает регулярные выражения и порой решает сложные задачи одной строкой; тех, кто все еще боится их и всячески избегает; и тех, кто уже прочитал первую и вторую части этой серии статей и полон оптимизма разобраться с этими магическими письменами. Эта статья специально для третьих, чтобы обратно их напугать, ведь в этой части мы рассмотрим одну из самых сложных, но в буквальном смысле захватывающих тем.
Читать дальше →

ISPA Parser Generator

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели1.6K

Разработка парсер генератора ISPA: что реализовано и какие планы на будущее.Гибкий парсер нового поколения с теми функциями, которых давно не хватает существующим решениям.

Читать далее

Регулярные выражения: как научиться читать между строк

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели8.7K

Представьте: нужно проверить документ или веб-страницу и найти повторяющиеся слова, чтобы, скажем, заменить их. А если найти нужно не просто слова, а электронные адреса, которые бывают разными.

Решение этой задачи существенно упростит использование регулярных выражений.

Регулярные выражения или regex (от англ. regular expression) – это особый синтаксис для описания шаблонов поиска информации. С их помощью можно искать, заменять или извлекать данные из текста с высокой точностью. В основе регулярных выражений лежат символы, которые задают правила для поиска, например, всех цифр или слов, начинающихся на определенную букву. Регулярные выражения позволяют описать сложные условия поиска в простой и читаемой форме, что делает их незаменимыми для различных задач.

Регулярные выражения помогут в разных случаях – от валидации данных, например, при проверке форматов номера телефона до анализа текстов: получения ссылок или другой информации.

Посмотрим на синтаксис регулярных выражений. Дальше на примерах станет понятнее.

Читать далее

Регулярные выражения делимости чисел

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.2K

Меня с детства привлекала тема признаков делимости числа. Особенно удивительно было узнать про признаки делимости на 3 и на 9, когда путем простого сложения всех чисел и проверки результата можно было узнать делится ли изначальное число на эту цифру. Кроме того было интересно узнать, что существует регулярное выражение определяющее простоту числа. Но основной фокус там в том, что число записывается в унарном виде.

И вот пару лет назад я встретил еще одну интересную задачу по написанию регулярного выражения для определения делится ли искомое число на 7. Само число при этом написано в двоичном виде. Признаки делимости на 7 существуют и для двоичной и для десятичной записи, но как правило они требуют производить операции умножения, сложения и рекурсивно проверять делимость уже получившегося в итоге этих действий меньшего числа, что не очень подходит для написания регулярного выражения. Я предполагал, что каким то образом могут помочь сложные операторы: условное сопоставление (позиционные проверки), обратные ссылки итд, но не разобрался как их использовать конкретно для данной задачи. Гораздо больше я думал в сторону более простой регулярки с использованием только оператора ИЛИ, квантификаторов и скобок. Остановился на построении графа остатков от деления следуя, по которому можно получить остаток заданного числа, но уперся в то, что всякое выражение с использованием скобок, но без ссылок - это в итоге дерево и поэтому произвольный граф туда не ложится. Это как пытаться хранить произвольный граф в JSON или XML - можно, но нужно будет вводить идентификаторы узлов и поля ссылок, а в то же время хранение простого дерева этого не потребует.

Читать далее

Цикл в RegEx для поиска подстрок с условием

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.7K

Я хочу поделиться своим изобретением, которое позволяет вам использовать только одно регулярное выражение, которое будет искать подстроку в строке с определенным условием. Если хотите, называйте это циклом в RegEx, которого раньше не существовало!

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

Посмотреть идеи и шаблоны

Видео Bad Apple в 6500 регулярных выражениях на базе поискового механизма vim

Время на прочтение11 мин
Охват и читатели5.6K

Если я хочу посмотреть видео — разве для этого обязательно покидать vim?

Что ж, прямо в заголовке этого поста я пообещал вам продемонстрировать Bad Apple в vim, пользуясь только поисковыми запросами. Вот Bad Apple в vim, всё, что здесь меняется — только поисковый запрос:

Читать далее
1
23 ...