mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!
Статья является инструкцией по надстройке Parser

Действие парсера «Часть строки по разделителю (split)»

Действие "Часть строки по разделителю (split)" разбивает обрабатываемый текст на части, используя в качестве разделителя заданный в параметрах символ (или символы).


Индекс нужной части - целое число от 1, до количества вхождений символа-разделителя в обрабатываемый текст


Например, если из строки «текст1\текст2\другой текст\нужный текст\текст3» нам надо получить «нужный текст»,
то мы задаем в качестве разделителя символ «\», а в качестве индекса нужной части - число 4


Дополнительные возможности (для индекса нужной части): last (последний), last-1 (предпоследний), last-3 (4-й с конца);
ifexist (если разделитель в строке не встречается - возвращается исходный текст)


Третий параметр - список имён переменных ( через разделитель | )- позволяет задать названия переменных, в которые будут сохранены отдельные части строки после её разбиения на части.

Если мы разбивает строку «текст1/2/3» по разделителю «/», и указали список переменных «first|second», то в переменную с названием first попадёт значение «текст1», а в переменную с именем second попадёт значение «2»


Работа действия разобрана на примерах.

Берем из исходного значения текст до первого разделителя (слеша):

Действие Параметр Значение
Часть строки по разделителю (split) Разделитель /
Индекс нужной части 1
Исходное значение Результат
http://excelvba.ru/programmes/Parser
http:

Берем из исходного значения текст между вторым и третьим слешем (адрес сайта) - индекс нужной части равен 3:

Действие Параметр Значение
Часть строки по разделителю (split) Разделитель /
Индекс нужной части 3
Исходное значение Результат
http://excelvba.ru/programmes/Parser
excelvba.ru

Берем из исходного значения текст после последнего разделителя (слеша):

Действие Параметр Значение
Часть строки по разделителю (split) Разделитель /
Индекс нужной части last
Исходное значение Результат
http://excelvba.ru/programmes/Parser
Parser

Берем из исходного значения текст перед последним разделителем (между двумя последними слешами):

Действие Параметр Значение
Часть строки по разделителю (split) Разделитель /
Индекс нужной части last-1
Исходное значение Результат
http://excelvba.ru/programmes/Parser
programmes

Если указан несуществующий в исходной строке разделитель, то при взятии первой части (индекс = 1) будет выведена исходная строка, а при любом другом индексе (2 и выше) результатом будет пустая строка:

Действие Параметр Значение
Часть строки по разделителю (split) Разделитель =
Индекс нужной части 1
Исходное значение Результат
http://excelvba.ru/programmes/Parser
http://excelvba.ru/programmes/Parser

Действие Параметр Значение
Часть строки по разделителю (split) Разделитель =
Индекс нужной части 2
Исходное значение Результат
http://excelvba.ru/programmes/Parser
(пустая строка)

Если вам надо взять текст после разделителя (в нашем случае это знак =), но если такого разделителя нет, то требуется оставить исходное значение без изменения, - используйте индекс вида 2 ifexist:

Это означает, что будет взят второй элемент после разделения строки, но только если он существует (ifexist)

Действие Параметр Значение
Часть строки по разделителю (split) Разделитель =
Индекс нужной части 2 ifexist
Исходное значение Результат
http://excelvba.ru/programmes/Parser
http://excelvba.ru/programmes/Parser

Есть возможность сразу сохранять результат разбития строки в переменные

Третий параметр - список имён переменных ( через разделитель | ) - позволяет задать названия переменных, в которые будут сохранены отдельные части строки после её разбиения на части.
Если мы разбивает строку «текст1/2/3» по разделителю «/», и указали список переменных «first|second», то в переменную с названием first попадёт значение «текст1», а в переменную с именем second попадёт значение «2»

Действие Параметр Значение
Часть строки по разделителю (split) Разделитель /
Индекс нужной части 1
Список имён переменных через | ||site||section|brand
Задать новое значение Новое значение раздел %section% на сайте %site% (бренд "%brand%")
Сохранить результат в переменную
Использовать новое значение да
Исходное значение Результат
http://www.MyWebsite.ru/catalog/shoes/omero/
раздел shoes на сайте www.MyWebsite.ru (бренд "omero")