В этой статье описывается, как использовать регулярные выражения при разработке процессов.
Регулярное выражение (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 вариантов:
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". Получили соответствующий результат:

На этом все!
Удачных разработок!