Для Adobe Classification Rule Builder (CRB) нет способа написать регулярное выражение, которое будет соответствовать произвольному номеру вашего шаблона, и перенести их в $n
группу захвата.Большинство движков регулярных выражений не допускают этого, хотя некоторые языки предлагают определенные способы более или менее эффективно делать это как возвращаемые массивы или что-то еще.Но CRB не предлагает такого рода вещи.
Но в любом случае, в общем-то, бессмысленно этого хотеть, так как нет ничего вверх или вниз по течению, которое действительно динамически / автоматически приспосабливалось бы к такого рода вещам в любом случае.
Например, в интерфейсе CRB нет способа динамически заполнить выходное значение произвольным значением $1$2$3[$n..]
, а также нет способа динамически генерировать произвольное количество правил в наборе правил.
Кроме того, Adobe Analytics (AA) не предлагает произвольную генерацию столбцов классификации на лету (если только вы не хотите написать скрипт с использованием Classification API, но вы не можете сказать то же самое для CRBв любом случае).
Например, если у вас есть
s.eVar1='foo1|foo2';
И вы хотите классифицировать это по 2 столбцам / отчетам классификации, вы должны пойти и создать их в интерфейсе классификации,А затем, скажем, ваше следующее отправленное значение:
s.eVar1='foo1|foo2|foo3';
Ну, АА автоматически не создает новый уровень классификации для вас;Вы должны войти и добавить третий, и так далее.
Таким образом, в целом, даже несмотря на то, что невозможно возвратить произвольное количество захваченных групп $n
в CRB, на самом деле нет необходимости в этом.
Возможно, это поможет, если вы объясните, что вы на самом деле пытаетесь сделать в целом?Например, какие отчеты вы ожидаете увидеть?
Одной из распространенных причин, по которым я вижу подобное «желание», является то, что кто-то хочет отслеживать такие вещи, как навигационные ссылки заголовка или крошки, которые имеют произвольную глубину.Таким образом, они помещают, например, хлебные крошки
Home > Electronics > Computers > Monitors > LED Monitors
... или что-то еще в eVar
(но разделенные на части, основываясь на вашем вопросе), и затем они хотят разбить этов классифицированные столбцы.
И проблема в том, что это может быть произвольной длины.Но, как уже упоминалось, создание классификаций и правил для них не совсем подходит для такого рода вещей.
Обычно для подобного сценария лучше всего смотреть на необработанные данные и видеть, сколько уровней в среднем представляет объем ваших данных.Например, если вы посмотрите на свой необработанный отчет eVar
и увидите, что в значениях можно найти более 5 или 6 уровней, но вы также можете увидеть, что большинство значений в среднем находятся между 1-3 уровнями, тогда выследует создать 4 столбца классификации.Первые 3 классификации представляют первые 3 уровня, а 4-й будет иметь все остальное.
Итак, возвращаясь к примеру значения:
Home|Electronics|Computers|Monitors|LED Monitors
Вы можете иметь:
Level1 => Home
Level2 => Electronics
Level3 => Computers
Level4+ => Monitors|LED Monitors
Затем вы настраиваете CRB с 4 правиламипо одному на каждый из уровней.И вы будете использовать одно и то же регулярное выражение во всех 4 строках правила:
^([^|]+)(?:\|([^|]+))?(?:\|([^|]+))?(?:\|(.+))?
, который вернет следующие захваченные группы для использования в выходных данных CRB:
$1 => Home
$2 => Electronics
$3 => Computers
$4 => Monitors|LED Monitors
Да, это не то же самое, что иметь столбец классификации для каждой возможной длины, но это более практично, потому что когда дело доходит до аналитики, вы не должны в первую очередь пытаться быть слишком детализированными в отношении вещей.
Но если вам абсолютно необходимо иметь что-то для каждого возможного количества значений с разделителями, вам нужно будет выяснить, какой максимальный возможный, и составить такое количество, жестко запрограммированных.
Или в качестве альтернативы классификациям, рассмотрим одну из следующих альтернатив:
- Использовать опору списка
- Использовать переменную списка (например, list1)
- Используйте Merchandising eVar (синтаксис переменной продукта)
Это не совсем одно и то же, и у каждого из них есть свои предостережения, но вы не предоставили детали того, что вы в конечном итоге пытаетесь получить из отчетов, так что это может или не может быть то, что вы можете работатьс.
Ну, в любом случае, надеюсь, кое-что из этого - пища для размышлений для вас.