Я устанавливаю некоторые цели в Google Analytics и могу использовать небольшую справку по регулярным выражениям.
Допустим, у меня есть 4 URL
http://www.anydotcom.com/test/search.cfm?metric=blah&selector=size&value=1
http://www.anydotcom.com/test/search.cfm?metric=blah2&selector=style&value=1
http://www.anydotcom.com/test/search.cfm?metric=blah3&selector=size&value=1
http://www.anydotcom.com/test/details.cfm?metric=blah&selector=size&value=1
Я хочу создать выражение, которое будет идентифицировать любой URL-адрес, содержащий строку selector = size, но НЕ содержащий details.cfm
Я знаю, что чтобы найти строку, НЕ содержащую другой строки, я могу использовать это выражение:
(^((?!details.cfm).)*$)
Но я не уверен, как добавить в раздел selector = size .
Любая помощь будет принята с благодарностью!
regex
google-analytics
regex-negation
Крис Шталь
источник
источник
"http://www.anydotcom.com/test/search.cfm?metric=blah&selector=sized&value=1" =~ /^(?!.*details\.cfm).*selector=size.*$/ #=> 0
это неверно. (Обратите внимание, что строка содержит"...selector=sized..."
.) Кроме того, почему.*$
в конце?регулярное выражение может быть (синтаксис perl):
источник
Если ваш механизм регулярных выражений поддерживает потенциальные квантификаторы (хотя я подозреваю, что Google Analytics не поддерживает), то я думаю, это будет лучше для больших входных наборов:
источник
selector=size
что всегда передdetails.cfm
, чего не происходит в последнем URL-адресе.Я искал способ избежать попадания
--line-buffered
в хвост в подобной ситуации, поскольку решение OP и Kobi отлично работает для меня. В моем случае исключение строк с «ботом» или «пауком» при включении' / '
(для моего корневого документа).Моя исходная команда:
Теперь становится (с
-P
переключателем perl):источник