Исключить указанную c строку из выражения RegEx в Google Analytics - PullRequest
0 голосов
/ 16 января 2020

У меня есть следующее базовое c выражение RegEx в Google Analytics, которое состоит из списка названий городов.

(toronto|vancouver|calgary|halifax|winnipeg|ottawa|edmonton|regina|mississauga)

Я хотел бы добавить другое выражение в запрос такой, что результат не возвращается, если в соответствующем тексте также есть слово "job".

Ответы [ 2 ]

0 голосов
/ 16 января 2020

При условии, что ваш тип регулярных выражений включает группы захвата, это легко решается с помощью Лучший трюк регулярных выражений , предварительное исключение. По существу:

"string".match(/(?:a|b|c)job|(a|b|c)/).match_group(1), где:
?:: не сохранять предыдущее исключение в группе захвата;
(a|b|c)job - строки, которые следует избегать захвата;
|(a|b|c) - это строки для захвата.

Это работает, потому что если текст соответствует нежелательному тексту ajob, то группа захвата никогда не заполняется. Заполняется только в том случае, если нужный текст a соответствует без ajob

0 голосов
/ 16 января 2020

[Отредактированный ответ] Это работает:

^((?!job).)*(toronto|vancouver|calgary|halifax|winnipeg|ottawa|edmonton|regina|mississauga)(?!.*job)

Соответствует названиям городов, только если «задание» отсутствует до или после названия города.

См. https://regex101.com/r/tXfBGf/3

...