Ставим жирную точку в судьбе регулярных выражений для решения офисных задач. Или нет?

Ставим жирную точку в судьбе регулярных выражений для решения офисных задач. Или нет?

Привет, на связи Сергей, продуктовый маркетолог платформы Puzzle-rpa и по совместительству человек, который раз 10 начинал решать вопрос с помощью регулярных выражений (regex) и примерно 0 раз их тем самым решил.

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

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

любой программист который решал проблему с помощью регулярных выражений

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

Давайте по-быстрому разберемся, что это такое и где используется.

Regex или регулярные выражения это инструмент для создания «шаблонов» для поиска текстовой информации в строках.

Рабочий пример такой задачи обычно выглядит так. У вас есть какой объемный файл с текстовыми данными, например контакты, выгруженные откуда-то. Вам, например необходимо добыть из него только адреса электронной почты для создания рассылки.

Если вы разработчик, то вероятнее всего придется использовать:

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b

Обернув его в код на Python или на чем, вы там ведете разработку. Но окажется, что это не универсальное правило и скорее всего будут исключения, которые тоже нужно описывать.

Если вы делаете это в Excel, то возможно по началу вы попробуете использовать ЛЕВСИМВ, ПРАВСИМВ, ПСТР, СЦЕПИТЬ, ОБЪЕДИНИТЬ ну и далее по списку. Может справитесь, а может нет, но так как внутри Excel есть только если использовать VBA, и вы можете сделать это на VBA, то я бы не стал на вашем месте читать эту заметку дальше.

Если проблему нужно решить разово, то интернет предоставит много разных сервисов, которые помогут сформировать правильный шаблон и даже обработать файл.

Как упростили регулярные выражения на платформе Puzzle?

Все просто, мы обернули самые популярные регулярные выражения в готовы функции.

Фактически пользователю нужно понять, какую информацию ему необходимо добыть и выбрать нужную функцию, поменяв в ней 1–3 параметра.

Вот пример того, как реализовано решение задачи поиска электронных адресов:

Регулярные выражения по поиску электронных адресов на <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fpuzzle-rpa.ru&postId=799241" rel="nofollow noreferrer noopener" target="_blank">Puzzle RPA</a>.
Регулярные выражения по поиску электронных адресов на Puzzle RPA.

Вот еще несколько примеров:

Регулярные выражения на <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fpuzzle-rpa.ru%2F&postId=799241" rel="nofollow noreferrer noopener" target="_blank">Puzzle RPA</a>.
Регулярные выражения на Puzzle RPA.

Все просто интуитивно и если вы можете написать текстом, что вы хотите сделать, то вы легко сможете сделать это на нашей платформе Puzzle RPA.

Подписывайтесь на мой блог и на наш телеграм канал. А мы будем стараться делать его интересным для широкого круга читалей.

Если интересно побольше узнать про нашу платформу, то вот выступление нашего основателя на конференции Гиперавтоматизация.

44
31 комментарий

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\bЗачем именно такой? Вы ведь максимально ограничиваете область определения (нет поддержки puny-code как минимум, ещё отвалится поддержка всяких "website.com.uk"). Я бы нечто подобное прикинул:
[\w\d!#$%&'*+\-/=?^_`{|}~]+@[\w\d!#$%&'*+\-/=?^_`{|}~.]+ Но окажется, что это не универсальное правилоЭто не универсальное правило только потому что вы сами сделали его таким

1

Когда приходит новичек и открывает процесс, то сколько времени он потратит чтобы понять его? В нашем случае даже обучаться практически не надо. Все интуитивно понятно) Вам это существенно упростит жизнь)

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

Я так понял что коллеги предлагают еще в экселе от формул отказаться, делать все регулярками в чистом виде:)

1

Я согласен с тем, что "какие-то там символы вписывать в поисковик" далеко не каждому бухгалтеру захочется. Но и делать билдер, который свой визуал берёт со Скретча, - тоже не очень

ChatGPT отлично пишет регулярки по текстовому описанию