Ustawiam cele w Google Analytics i przydałaby mi się pomoc dotycząca wyrażeń regularnych.
Powiedzmy, że mam 4 adresy 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
Chcę utworzyć wyrażenie, które będzie identyfikować dowolny adres URL, który zawiera selektor ciągu = rozmiar, ale NIE zawiera details.cfm
Wiem, że aby znaleźć ciąg, który NIE zawiera innego ciągu, mogę użyć tego wyrażenia:
(^((?!details.cfm).)*$)
Ale nie jestem pewien, jak dodać selektor = rozmiar .
Każda pomoc byłaby bardzo mile widziana!
regex
google-analytics
regex-negation
Chris Stahl
źródło
źródło
"http://www.anydotcom.com/test/search.cfm?metric=blah&selector=sized&value=1" =~ /^(?!.*details\.cfm).*selector=size.*$/ #=> 0
jest nieprawidłowe. (Zwróć uwagę na ciąg zawiera"...selector=sized..."
.) Poza tym, dlaczego.*$
na końcu?wyrażenie regularne mogłoby wyglądać (składnia perla):
źródło
Jeśli Twój silnik wyrażeń regularnych obsługuje dodatnie kwantyfikatory (chociaż podejrzewam, że Google Analytics nie obsługuje), to myślę, że będzie to działać lepiej w przypadku dużych zbiorów danych wejściowych:
źródło
selector=size
się, że zawsze jest przeddetails.cfm
, co nie ma miejsca w ostatnim adresie URL.Szukałem sposobu na uniknięcie sytuacji
--line-buffered
na ogonie w podobnej sytuacji jak OP i rozwiązanie Kobi działa dla mnie świetnie. W moim przypadku wykluczanie wierszy z „botem” lub „pająkiem” podczas włączania' / '
(dla mojego dokumentu głównego).Moje oryginalne polecenie:
Teraz staje się (z
-P
przełącznikiem Perl):źródło