Replace Branches (Заменить Ветви)


Ищет (Find)/Заменяет (Replace) пути ветвей в древовидной структуре. Этот компонент поддерживает Маски Пути (Path Masks), которые являются строками текста, представляющих собой разрешённые и запрещённые индексы пути. Маски поддерживают как единичные цифры (single digits), так и диапазон цифр (digit ranges), группы цифр (digits groups) и групповые символы (wildcards). Маска состоит из определителей индексов переменных (alternating index qualifiers) и индексов разделителей (index separators). Разделителями должны быть запятая или точка с запятой.

Определители индексов указывают, какие цифры разрешены или запрещены в каждом индексе пути. Есть несколько видов определителей:


Определитель

Символ

Значение

Групповой символ (Wildcard)

* (Звёздочка)

Представляет любое количество разрешенных цифр

Метка-заполнитель (Placeholder)

? (Знак вопроса)

Представляет любую единичную цифру

Цифра (Digit)

N (Целое число)

Представляет определённую единственную цифру

Диапазон (Range)

[A-B] (Заключённый в квадратные скобки)

Представляет определенный диапазон цифр между двумя экстремумами.

Группа (Group (Группа))

[A,B,C,D] (Заключённая в квадратные скобки)

Представляет определенный набор разрешённых/запрещённых цифр.



Вы можете предварять Цифровую маску операторами равенства (<, >, <=, >=). Кроме того, Вы можете также предварять её восклицательным знаком, чтобы отрицать соответствие (negate the matching).

Например, предположим, что у нас есть дерево со следующими путями:
A) {0;0;0;0}
B) {0;0;0;1}
C) {0;0;1;0}
D) {0;0;1;1}
E) {0;0;1;2}

При обработке такого дерева следующей комбинацией Маски/Пути:
Mask = "{0:0:1:?}"
Path = {0;0;1;0}

Мы обеспечим слияние ветвей C, D и E в единственную ветвь C. Или, если мы используем комбинацию двух Масок/Путей:
Mask 1 = "{0:0:0:?}"
Path 1 = {0}
Mask 2 = "{0:0:1:?}"
Path 2 = {1}

Мы обеспечим слияние двух ветвей A и B в новую ветвь с путём {0}, а ветви C, D и E будут слиты в новую ветвь с путём {1}.

Разберём следующую Маску:

{[0-3];>=4;![0,2,5];?}

Разъяснение элементов Маски отдельно:

Элемент

Значение

[0-3]

Любое число между и включая ноль и три.

>=4

Любое число больше, или равное четырём.

![0,2,5]

Любое число, неравное нулю, двум или пяти.

?

Любое единичное число






Вводные параметры:
D (Generic Data (Общие данные))
Поток данных для обработки
S (String (Строковый))
Маска поиска (Search masks)
R (Path (Путь))
Соответствующие замены для путей


Результирующие параметры:
D (Generic Data (Общие данные))
Обработанное дерево данных