Ставим жирную точку в судьбе регулярных выражений для решения офисных задач. Или нет?
Привет, на связи Сергей, продуктовый маркетолог платформы Puzzle-rpa и по совместительству человек, который раз 10 начинал решать вопрос с помощью регулярных выражений (regex) и примерно 0 раз их тем самым решил.
В заметке опишу как мы упростили процесс работы с регуляркой и заодно еще раз вспомним зачем оно вообще нужно.
Не зря же есть шутка, что если вы решаете проблему с использованием регулярных выражений, то у вас уже две проблемы.
Для моего скромного взгляда regex это совершенно контринтуитивная штука, которая непонятно зачем вообще существует. И, как и любой подобный инструмент вокруг него выстраивается своя логика работы, делаются сервисы и ломаются копья на форумах разработчиков.
Давайте по-быстрому разберемся, что это такое и где используется.
Regex или регулярные выражения это инструмент для создания «шаблонов» для поиска текстовой информации в строках.
Рабочий пример такой задачи обычно выглядит так. У вас есть какой объемный файл с текстовыми данными, например контакты, выгруженные откуда-то. Вам, например необходимо добыть из него только адреса электронной почты для создания рассылки.
Если вы разработчик, то вероятнее всего придется использовать:
Обернув его в код на Python или на чем, вы там ведете разработку. Но окажется, что это не универсальное правило и скорее всего будут исключения, которые тоже нужно описывать.
Если вы делаете это в Excel, то возможно по началу вы попробуете использовать ЛЕВСИМВ, ПРАВСИМВ, ПСТР, СЦЕПИТЬ, ОБЪЕДИНИТЬ ну и далее по списку. Может справитесь, а может нет, но так как внутри Excel есть только если использовать VBA, и вы можете сделать это на VBA, то я бы не стал на вашем месте читать эту заметку дальше.
Если проблему нужно решить разово, то интернет предоставит много разных сервисов, которые помогут сформировать правильный шаблон и даже обработать файл.
Как упростили регулярные выражения на платформе Puzzle?
Все просто, мы обернули самые популярные регулярные выражения в готовы функции.
Фактически пользователю нужно понять, какую информацию ему необходимо добыть и выбрать нужную функцию, поменяв в ней 1–3 параметра.
Вот пример того, как реализовано решение задачи поиска электронных адресов:
Вот еще несколько примеров:
Все просто интуитивно и если вы можете написать текстом, что вы хотите сделать, то вы легко сможете сделать это на нашей платформе Puzzle RPA.
Подписывайтесь на мой блог и на наш телеграм канал. А мы будем стараться делать его интересным для широкого круга читалей.
Если интересно побольше узнать про нашу платформу, то вот выступление нашего основателя на конференции Гиперавтоматизация.
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\bЗачем именно такой? Вы ведь максимально ограничиваете область определения (нет поддержки puny-code как минимум, ещё отвалится поддержка всяких "website.com.uk"). Я бы нечто подобное прикинул:
[\w\d!#$%&'*+\-/=?^_`{|}~]+@[\w\d!#$%&'*+\-/=?^_`{|}~.]+ Но окажется, что это не универсальное правилоЭто не универсальное правило только потому что вы сами сделали его таким
Когда приходит новичек и открывает процесс, то сколько времени он потратит чтобы понять его? В нашем случае даже обучаться практически не надо. Все интуитивно понятно) Вам это существенно упростит жизнь)
кстати раз уж зашел разговор про регулярки вообще, то мы как раз бежим в сторону того, чтобы бизнес пользователю вообще ну нужно было внимать в то, что это такое. А просто брать функция поиска в строках и использовать ее.
Таков путь
Я так понял что коллеги предлагают еще в экселе от формул отказаться, делать все регулярками в чистом виде:)
Я согласен с тем, что "какие-то там символы вписывать в поисковик" далеко не каждому бухгалтеру захочется. Но и делать билдер, который свой визуал берёт со Скретча, - тоже не очень
_
ChatGPT отлично пишет регулярки по текстовому описанию