2016-12-16 3 views
1

Мои навыки регулярного выражения в лучшем случае наивны. Я пытаюсь сгенерировать отчет в Google Analytics. Я хотел бы, чтобы отфильтровать отчет по URL, которые соответствуют следующим критериям:Регулярное выражение для GA, содержащее строку

(.+)/book/<contains the case insensitive word 'test'> 

Это приводит к:

  • URL может начинаться с чем

  • URL должен иметь «книга» после того, как первый /

  • URL должен содержать нечувствительное к регистру ключевое слово 'test', после второго /. Там могут быть символы до и после ключевого слова «тест»

Я попытался использовать следующее, но он не работает:

(.+)/book/(\btest\b) 

Примеры приемлемых адресов:

http://website.com/book/Biology-Tests/section/2.6/

http://website.com/book/Geometry-Test/section/3.9/

Любая помощь будет будем очень благодарны.

+0

Не могли бы вы поделиться несколькими примерами строки, в которой вы нуждаетесь? – rawatdeepesh

+0

Попробуйте '^/book/(? I). * Test'. Или '^/book/(? I:. * Test)' –

+0

@ WiktorStribiżew: Это оба недопустимых выражения – Patthebug

ответ

1

Вы можете использовать

^/book/.*[tT][Ee][Ss][Tt] 

Это будет соответствовать URL, который сразу же после того, как хост часть содержит book (чувствительно к регистру) подконтуром, а затем, после того, как любые 0+ символы (.*) содержит регистрозависимости слово test. Если слово test должно быть целым словом, заключите с границами слов: ^/book/.*\b[tT][Ee][Ss][Tt]\b.

Обратите внимание, что в соответствии test и tests, то \b может быть использован только перед слова:

^/book/.*\b[tT][Ee][Ss][Tt] 

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

^/book/.*\b[tT][Ee][Ss][Tt][sS]?\b 
          ^^^^^^^ 
+1

Протестировано как в [regex101] (https://regex101.com/r/za2o3a/1), так и в [Регуляторе регулярных выражений Google Analytics] (http://www.analyticsmarket.com/freetools/regex-tester). –

+0

Спасибо, это работает. Интересный факт: Google Analytics не заботится о нечувствительности к регистру. Я мог бы заставить его работать, просто используя «тест», без квадратных барсов. – Patthebug

+0

О, я думаю, это верно, так как тестер регулярных выражений GA также соответствует без '[]'. Кажется, что буквальная строка в шаблоне GA нечувствительна к регистру, но если вы заключите символ с '[]', он станет чувствительным к регистру ('[t] [e] [s] [t]' будет соответствовать только тесту ', а не' Test'). Нашли несколько приятных объяснений [здесь] (http://www.shimonsandler.com/regex-in-google-analytics/). –

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