Поиск с заменой
Активити и робот, аналогичные по действию PHP-функциям str_replace (замена по строке), preg_replace (замена по регулярному выражению) и preg_match (поиск по регулярному выражению).
-
Оценка
-
Установок109
-
РазработчикКИБРА
Описание
Замена
В бизнес-процессах и роботах нередко возникает потребность в автоматической замене части текста. Это может быть форматирование номера телефона, e-mail или адреса; удаление лишних пробелов или ненужных знаков (например, html-тегов); подстановка значений в шаблоны и ещё множество других задач. Всё это можно сделать с помощью этого Действия, реализующего PHP-функции str_replace (замена по строке) и preg_replace (замена по регулярному выражению). С их помощью можно:
- форматировать номера телефонов;
- удалять лишний текст в автоматически сгенерированных заголовках Лидов, Сделок и Задач ("Re:", "Заявка с сайта" и пр.);
- удалять мусор из текста (html-теги, переносы, разрывы строк и пр.);
- форматировать даты (в том числе совершать над ними преобразования, не предусмотренные стандартными функциями);
- подсчитывать количество вхождений подстроки в тексте
и многое другое.
Параметры функций совпадают с их одноимёнными аналогами из PHP. Если не указать строку для замены, то найденное значение будет удалено.
Посмотреть более подробное описание и особенности работы можно в документации: str_replace и preg_replace. Обе функции в случае успеха возвращают изменённую строку и количество произведённых замен. В случае ошибки в лог бизнес-процесса записывается её код (если он есть).
Поиск
Функция preg_match позволяет найти в тексте строку, точное значение которой неизвестно (какой-то e-mail, какой-то номер телефона, записанный в произвольном формате, веб-ссылку, фамилию с инициалами и пр.). Функция возвращает найденную строку.
ВАЖНО! Функция имеет ряд отличий от аналога PHP. В частности, не используются параметры $flags и $offset, а в результатах возвращается только найденная строка целиком (параметр $matches[0]).
ВАЖНО! В функциях preg_replace и preg_match применён модификатор, инвертирующий жадность квантификаторов.
Примеры использования.
1. Форматирование номера телефона
Функция - preg_replace
Обрабатываемая строка - номер телефона в произвольном формате (+79661234567, 8-966-123-45-67, 89661234567 и т.п.)
Выражение для поиска - /(8|\+7)-*([0-9]{3})-*([0-9]{3})-*([0-9]{2})-*([0-9]{2})/
Выражение для замены - +7 ($2) $3-$4-$5
Результат - +7 (966) 123-45-67
2. Удаление html-тегов из текста
Функция - preg_replace
Выражение для поиска - /<.+>/
Выражение для замены - [поле остаётся пустым]
3. Поиск адресов e-mail в тексте
Функция - preg_match
Выражение для поиска - /[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+.+.[A-Za-z]{2,4}/
Выражение для замены - [поле остаётся пустым]
В бизнес-процессах и роботах нередко возникает потребность в автоматической замене части текста. Это может быть форматирование номера телефона, e-mail или адреса; удаление лишних пробелов или ненужных знаков (например, html-тегов); подстановка значений в шаблоны и ещё множество других задач. Всё это можно сделать с помощью этого Действия, реализующего PHP-функции str_replace (замена по строке) и preg_replace (замена по регулярному выражению). С их помощью можно:
- форматировать номера телефонов;
- удалять лишний текст в автоматически сгенерированных заголовках Лидов, Сделок и Задач ("Re:", "Заявка с сайта" и пр.);
- удалять мусор из текста (html-теги, переносы, разрывы строк и пр.);
- форматировать даты (в том числе совершать над ними преобразования, не предусмотренные стандартными функциями);
- подсчитывать количество вхождений подстроки в тексте
и многое другое.
Параметры функций совпадают с их одноимёнными аналогами из PHP. Если не указать строку для замены, то найденное значение будет удалено.
Посмотреть более подробное описание и особенности работы можно в документации: str_replace и preg_replace. Обе функции в случае успеха возвращают изменённую строку и количество произведённых замен. В случае ошибки в лог бизнес-процесса записывается её код (если он есть).
Поиск
Функция preg_match позволяет найти в тексте строку, точное значение которой неизвестно (какой-то e-mail, какой-то номер телефона, записанный в произвольном формате, веб-ссылку, фамилию с инициалами и пр.). Функция возвращает найденную строку.
ВАЖНО! Функция имеет ряд отличий от аналога PHP. В частности, не используются параметры $flags и $offset, а в результатах возвращается только найденная строка целиком (параметр $matches[0]).
ВАЖНО! В функциях preg_replace и preg_match применён модификатор, инвертирующий жадность квантификаторов.
Примеры использования.
1. Форматирование номера телефона
Функция - preg_replace
Обрабатываемая строка - номер телефона в произвольном формате (+79661234567, 8-966-123-45-67, 89661234567 и т.п.)
Выражение для поиска - /(8|\+7)-*([0-9]{3})-*([0-9]{3})-*([0-9]{2})-*([0-9]{2})/
Выражение для замены - +7 ($2) $3-$4-$5
Результат - +7 (966) 123-45-67
2. Удаление html-тегов из текста
Функция - preg_replace
Выражение для поиска - /<.+>/
Выражение для замены - [поле остаётся пустым]
3. Поиск адресов e-mail в тексте
Функция - preg_match
Выражение для поиска - /[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+.+.[A-Za-z]{2,4}/
Выражение для замены - [поле остаётся пустым]