2015-09-18 4 views
1

Это наша структура URL:Google Analytics - Content группировки - Regex починки

http://www.disabledgo.com/access-guide/the-university-of-manchester/176-waterloo-place-2 

http://www.disabledgo.com/access-guide/kingston-university/coombehurst-court-2 

http://www.disabledgo.com/access-guide/kings-college-london/franklin-wilkins-building-2 

http://www.disabledgo.com/access-guide/redbridge-college/brook-centre-learning-resource-centre 

Я пытаюсь создать список групп на основе имен клиентов

/access-guide/[this bit]/... 

Так что я могу иметь список всех наших клиентов.

Это мое регулярное выражение:

/access-guide/(.*universit(y|ies)|.*colleg(e|es))/ 

Хочу в группу все, что имеет в университете/е годы или колледжа/ES в этом, в любой момент в пределах этого имени клиента секции URL.

На данный момент мое текущее регулярное выражение будет возвращать только те группы, которые X-Университет:

Durham-University 
Plymouth-University 
Cardiff-University 
etc. 

Что регулярное выражение нужно быть, чтобы иметь список я ищу?

Должен ли я иметь что-то в конце, чтобы остановить его после того, как оно было после имени клиента? Например. ([^/]+$)?

Спасибо за вашу помощь заранее!

+0

Try [ '/ доступа руководство/[^ /] * (Universit (у | х годов) | колледжи ?)/'] (https://regex101.com/r/oU0hT1/1). '[^ /] *' Будет обеспечивать ограничение, на котором расположены «университет/колледж». –

+0

Исходя из этого: [* Вы можете извлечь страницы по URL страницы, названию страницы или имени экрана. Определите каждый из них с группой захвата регулярных выражений (в Analytics используется первая группа захвата для каждого выражения) *] (https://support.google.com/analytics/answer/2853546?hl=ru&ref_topic=1727167&vid=1-635784241538251930-2972435195# извлечение), моя ошибка в том, что я поместил группу захвата вокруг неправильного шаблона. Похоже, это должно быть '/ access-guide/([^ /] * (universit (y | ies) | colleges?))'. Обратите внимание на первую группу захвата в онлайн-тестировщике регулярных выражений, это то, что вы получите. –

ответ

1

В зависимости от ваших потребностей вы можете сделать:

/access-guide/([^/]*(?:university|universities|college|colleges)[^/]*)/ 

Это будет совпадать с именами, даже если «университет» или «колледж» не в конце строки. Например, «college-of-the-ozarks» Обратите внимание на неотъемлемую внутреннюю скобку, которая, вероятно, должна использоваться независимо от того, с каким решением вы идете, поскольку вы не хотите просто соответствовать слову «университет» или «колледж»

[Live Example ]

Кроме того, я не знаю, что может быть у вас, но если у вас могут быть сложные слова, которые вы хотите устранить, используя \b, может быть целесообразным. Например, если вы не хотите, чтобы соответствовать "miskatonic-postcollege" вы можете сделать что-то вроде этого:

/access-guide/([^/]*\b(?:university|universities|college|colleges)\b[^/]*)/ 
+0

Я собираюсь попробовать эту версию сегодня и посмотреть, что будет завтра. Благодарю вас – aden

+0

Проверяя это в тесте REGEX, результаты более перспективны, мы увидим завтра. – aden

+0

@aden С вашего вопроса я уверен, что это то, чего вы хотите. Дайте мне знать, если вам требуется разъяснение синтаксиса, чтобы помочь вам в настройке. –

0

Если раздел имени клиента в URL находится после access-guid/ и до следующего /:

http://www.disabledgo.com/access-guide/the-university-of-manchester/176-waterloo-place-2 
             |----------------------------| 

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

Согласно Reference:

Вы можете извлечь страницы по URL страницы, название страницы или экрана Имя. Определение каждых из них с захватом регулярного выражения группой (Analytics использует первую группу захвата для каждого выражения)

Таким образом, вы можете использовать

/access-guide/([^/]*(universit(y|ies)|colleges?)) 
       ^^^^^ 

См demo.

Регулярное выражение соответствует

  • /access-guide/ - крайний левый границы, спички /access-guide/ буквально
  • [^/]* - любой символ, кроме / (так что мы по-прежнему остаются в этом разделе для клиентов)
  • (universit(y|ies)|colleges?) - university или universities, or колледж or колледжи` буквально. При необходимости добавьте больше.
+1

В случае необходимости избегайте обратных косых черт (но я не думаю, что это требуется в GA). –

+1

Спасибо за ваш быстрый комментарий! Demo определенно выглядит так, как будто это сработает, я добавил его, мы увидим в понедельник, когда у Google есть время, чтобы принять его (требуется время, как обычно, кто-то сказал 24 часа). Однако, спасибо! – aden

+0

Just FYI: Я только что обнаружил, что я ошибся в регулярном выражении от regex101 до ответа. Окончательного '/' не должно быть. Вам просто не нужно искать границу '/' rightmost. –

Смежные вопросы