Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Current »

Описание

Данный блок служит различным манипуляциям с текстом, которые в практике требуются очень часто. Обработать спарсенный текст, очистить его от мусора, перевести на другие языки – всё это, и многое другое, может «кубик» обработки текста.

Где применяется обработка текста?

Как пользоваться экшеном?

Окно свойств состоит в основном из трёх областей:

  1. Входная строка – текст, переменная или их комбинация.

  2. Действия над строкой, свойства и их настройки.

  3. Выходная строка (результат) в переменной.

Установите курсор в области входной строки, нажмите Ctrl+Пробел и выберите из выпадающего списка полезные константы и переменные проекта. Например, так можно быстро вставить прокси проекта {-Project.Proxy-} или URL активной вкладки {-Page.Url-}

Все возможные операции с этим «кубиком»:

Escape строки

Экранирование символов. Этот экшен заменяет символы *+?|{[()^$.# и пробел escape-кодами. Этот метод часто используется для работы с запросами и для того чтобы обработчик регулярных выражений использовал эти символы буквально, а не как команды или метасимволы.

До применения: {"animal": "cat"}
После: \{"animal":\ "cat"}


Regex

Обработка текста регулярными выражениями. Регулярками очень удобно парсить строки для нахождения нужной подстроки по заданному паттерну. Данный экшен позволяет спарсить не только первое найденное значение, но и всю группу и сохранить значения в переменные или таблицу. Также, опционально, если ничего не найдено, результатом будет ошибка и выход по красной ветке. Всего имеется шесть вариантов сохранения результатов после обработки регулярным выражением:

  • сохраняется только первое найденное значение;

  • сохраняются все найденные соответствия в список;

  • сохраняется одно значение, но или последнее или случайное;

  • сохраняются одно или несколько значений в список, но определенного индекса (порядковому номеру в списке найденных значений). Индексы можно перечислить через запятую (4,5,9), задать интервал через дефис (4-9) или комбинацией вышеуказанных способов (4,5, 9-11);

  • тоже самое что в предыдущем пункте, но без списка, а значение каждого найденного индекса можно положить в свою переменную;

  • совпадения сохраняются в таблицу.

Для создания паттернов регулярных выражений в ZennoPoster предусмотрен очень удобный инструмент – Конструктор регулярных выражений.

Рассмотрим на конкретном примере парсинг ссылок регулярными выражениями, составленными с помощью этого конструктора.

Например, у нас есть задача - спарсить ссылки на профили активных пользователей форума ZennoLab. Приступаем:

  1. С помощью кубика “Получение значения” получаем HTML код элемента в котором размещены ссылки на пользователей находящихся на форуме онлайн.

  2. Добавляем экшен “Regex”. Для составления паттерна, используемого в свойствах экшена “Regex”, используем Конструктор регулярных выражений.

  3. В свойствах экшена на вход добавляем переменную “html“, а результат сохраняем в список “urls“.

  4. После запуска кубика получаем в списке уникальные id, которые можно использовать для формирования URL профилей юзеров.


Spintax

Рандомизация или уникализация текста. С помощью spintax удобно создавать синонимизацию текстов. Спинтакс - это такая конструкция из обрамляющих фигурных скобок и вертикальных слэшей, которая позволяет в случайном порядке подставлять подстроки из строки. В простейшем варианте спинтакс выглядит так: {вариант1|вариант2|вариант3}. При выполнении этого действия в результирующую переменную случайно попадет один из трёх вариантов. Но конструкции спинтакса бывают более сложными и обладают многоуровневой вложенностью из-за чего из одного текста можно получить тысячи разных вариантов.

Также Spintax в ZennoPoster поддерживает расширенный синтаксис:

  • {Red|White|Blue} — в результирующий текст попадает одно из значений, например: «White»

  • [ Red| White| Blue] — в результирующий текст попадает перестановка значений, например: «White Blue Red»

  • [+_+Red|White|Blue] — в результирующий текст попадает перестановка значений, между которыми вставлен разделитель, например: «White_Red_Blue»

Вложенность шаблонов неограниченна (например: [+{_|-}+Red|White|Blue {1|2}] = «White-Blue 2-Red»). Спец.символы можно экранировать: [+\++Red|\[White\]|Blue] - результат «[White]+Red+Blue»


Split

Разделение текста каким-либо символом-разделителем (делиметером). Эта обработка превращает строку в массив строк. По сути это более простой аналог RegExp для разделения строки символами.

Рассмотрим работу сплита на примере очень частой задачи – получение из строки логина и пароля. Обычно доступы к различным аккаунтам хранятся в виде построчных списков в формате - логин:пароль. И тут делиметором является символ двоеточия :

Вставляем в входное поле нашу строку или переменную её содержащую. В свойствах указываем разделитель - :, а ниже присваиваем каждому элементу полученного массива подстрок отдельную переменную. После обработки строки мы получаем в каждой переменной логин и пароль.

Также нередко используемый функционал – это разбор строки прокси с авторизацией по паролю. Строка прокси в ZennoPoster имеет формат: логин:пароль@хост:порт. Для получения например IP прокси придется использовать «кубик» дважды. Сначала делим строку прокси с помощью разделителя @ на две подстроки и вторую заносим во временную переменную. Затем  вторую подстроку делим с помощью разделителя : и берем первую подстроку, которая и будет являться нашим искомым IP прокси.


ToChar

Преобразует значение целого числа в символы Unicode.
Каждый символ Юникод имеет свой цифровой код и этот функционал позволяет конвертировать числовое значение в соответствующие символы. Например у символа числовое значение 9819


ToLower

Меняет регистр букв на нижний в зависимости от выбранного свойства: либо все буквы, либо только первую букву строки, либо первую букву в каждом слове.

Например нас ОЧЕНЬ РАЗДРАЖАЕТ НАПИСАНИЕ CAPS LOCKОМ. Пропускаем текст через этот макрос и получаем нормальное написание.


ToUpper

Обратное действие предыдущего. Меняет регистр букв в верхний: либо все буквы, либо только первую букву строки, либо первую букву в каждом слове.

Например, нам нужно Чтобы Все Слова В Заголовке Начались С Заглавных Букв (частый приём на иностранных ресурсах) - используем этот “кубик” в режиме “Первая буква в каждом слове“.


Trim

Это обрезка лишних символов в строке. В основном используется, если нужно почистить строку от лишних пробелов, переносов строк, табуляций, которые так часто остаются в результате парсинга. При этом чистить можно с начала строки, с конца и одновременно. Кроме того, обрезать можно и свои символы, например частая задача - удалить точки в заголовках.

Было: какой-то текст (пробелы в начале и в конце)
Стало: какой-то текст


UrlDecode

Декодирует URL-закодированную строку.

Если такие символы, как пробелы и знаки препинания, передаются в HTTP-запросе, то они могут быть неверно интерпретированы в принимающей стороне. Поэтому данный макрос обязательно используется при формировании URL-запросов.

Наиболее наглядно этот экшен выглядит при раскодировании кириллицы:
Было: %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%2C%20%D0%BC%D0%B8%D1%80%21
Стало: Привет, мир!


UrlEncode

Функция обратная предыдущей. Кодирует строку URL-адреса. Часто используется для HTTP-запросов.
Было: https://zennolab.com/
Стало: https%3a%2f%2fzennolab.com%2f


В переменную

Это действие просто сохраняет всё что вы добавите во входное окно – переменные, текст, символы, константы проекта, в отдельную переменную.


В список

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


В таблицу

Примерно тоже самое что и в предыдущем экшене, но сохраняет данные в таблице. Естественно, в данном случае необходимо указать разделители не только для строк, но и для столбцов. Например для таблиц в формате Excel нужно указывать разделителем столбцов свой символ и ввести в поле рядом {-String.Tab-}


Замена

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


Перевод

Переводит строки с одного языка на другой.

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

Доступны следующие API:

Кроме выбора API, которое будет переводить, важно указать язык оригинала и итогового перевода. Вот несколько примеров: английский – en, испанский – es, немецкий – de, русский – ru (полный список)
Можно указать язык “auto” и тогда система попробует определить язык перевода сама, но результат не гарантируется.

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

Ключи API для сервисов можно добавить в настройках ZennoPoster.

Подготовка JavaScript

Обрабатывает строку для корректного использования в JavaScript. В основном экранирует кавычки и другие спец. символы. Этот макрос подготавливает текст, чтобы его можно было вставить в качестве строки в экшен JavaScript или IF. В ProjectMaker есть тестер JavaScript, где можно проверить (протестировать) код. Этот “кубик” поможет заэкранировать кавычки, апострофы и другие спецсимволы.

Было: <a href="https://zennolab.com/">
Стало: <a href=\"https://zennolab.com/\">


Подстрока

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


Транслитерация

Иногда всё ещё требуется perevesti кириллицу в латиницу. Этому действию и служит данный экшен.

  • No labels