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

Регулярное выражение (regex) - это шаблон (последовательность символов и метасимволов), который соответствует (или нет) последовательности символов в тексте. Как правило, регулярные выражения используются для задания правила поиска последовательности в тексте.

Этот сервис использовался для проверки регулярных выражений https://regex101.com/

Места использования

Могут использоваться регулярные выражения:

  • Для сравнения соответствующих значений;

  • В селекторах;

  • Для замены значений;

  • Для получения данных;

Это основные способы использования регулярных выражений в UiPath. Переходим к примерам.

Регулярные выражения для сравнения соответствующих значений

Создадим текстовый файл, в который поместим строку. «Hello, my name is Bohdan Ovcharenko, I'm 20 years old». Проверим с помощью регулярных выражений , вписал ли разработчик свой возраст.

Создадим процесс с использованием активности «is match» и метода «Regex.IsMatch». Создадим переменные :

Код процесса выглядит так:

Настройка активности "Read Text File".

Настройка активности "Is Match".

А также осуществляем операцию присвоения через активность "Assign".

Результат выводится через булевые переменные. Проверяем правильность поиска, запустив процесс.

Как видим – мы нашли нужные для нас данные.

Проведем еще один тест, проверим наличие трех цифр с помощью активности "Is Match".

Результат неуспешный, потому что такого текста нет.

Регулярные выражения в селекторах

Более подробную информацию вы можете найти по ссылке About RegEx Search

В нашем случае мы напишем процесс, который будет нажимать в браузере Edge на ссылку LinkedIn, однако название ссылки может быть 2 вариантов:

  1. LinkedIn

2. Linkedin

При этом селектор будет отличаться.

В таком случае нужно прописать возможные изменения с помощью структуры:

matching:name='regex'

Таким образом мы прописываем какие буквы меняются.

Регулярные выражения для замены значений

Замена символов на другие происходит с помощью метода или активности Replacе. Возьмем пример из 1 пункта и заменим “IsMatch” на “Replace”. Настройки активности “Replace” выглядят следующим образом:

Мы заменяем текст, который находится после первой запятой на “I am RPA Developer”. Исходная переменная должна быть STRING, в нашем случае мы просто перезаписываем уже существующий текст.

Так же как и в первом пункте можно использовать операцию присвоения, выглядит это следующим образом:

Код выглядит следующим образом:

После запуска процесса получили соответствующий результат:

Регулярные выражения для получения соответствующих данных

Вытащить отдельные значения можно с помощью метода Match или активности Matches. Возьмем пример из 1 пункта и заменим “IsMatch” на “Matches”.

Создадим текстовый файл и поместим туда строку "Hello, my name is Bohdan Ovcharenko, I QA Engineer".

Настройка активности Matches выглядит следующим образом:

Так как выход в этой активности – это переменная list, то применяем For each для вывода данных.

Так же как и в первом пункте можно использовать операцию присвоения, выглядит это следующим образом:

Код выглядит следующим образом:

Посредством активации "Matches" и регулярного выражения "QA.*" мы "вырезаем" все, что находится с текстом "QA" и после него. А с помощью метода "Regex.Match" и регулярного выражения ".*(?=QA)" мы "вырезаем" все, что находится перед текстом "QA". Получили соответствующий результат:

На этом все!

Удачных разработок!