Ich richte einige Ziele in Google Analytics ein und könnte eine kleine Regex-Hilfe gebrauchen.
Nehmen wir an, ich habe 4 URLs
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
Ich möchte einen Ausdruck erstellen, der jede URL identifiziert, die den String selector = size enthält , aber NICHT details.cfm enthält
Ich weiß, dass ich diesen Ausdruck verwenden kann, um eine Zeichenfolge zu finden, die KEINE andere Zeichenfolge enthält:
(^((?!details.cfm).)*$)
Ich bin mir jedoch nicht sicher, wie ich den Teil selector = size hinzufügen soll .
Jede Hilfe wäre sehr dankbar!
quelle
"http://www.anydotcom.com/test/search.cfm?metric=blah&selector=sized&value=1" =~ /^(?!.*details\.cfm).*selector=size.*$/ #=> 0
ist falsch. (Beachten Sie, dass die Zeichenfolge enthält"...selector=sized..."
.) Warum auch.*$
am Ende?Regex könnte sein (Perl-Syntax):
quelle
Wenn Ihre Regex-Engine positive Quantifizierer unterstützt (obwohl ich vermute, dass Google Analytics dies nicht tut), ist dies bei großen Eingabesätzen wahrscheinlich besser:
quelle
selector=size
es immer vorher istdetails.cfm
, was in der letzten URL nicht der Fall ist.Ich suchte nach einer Möglichkeit,
--line-buffered
in einer ähnlichen Situation wie der OP zu vermeiden, und die Lösung von Kobi funktioniert für mich hervorragend. In meinem Fall das Ausschließen von Zeilen mit "Bot" oder "Spider" beim Einschließen' / '
(für mein Stammdokument).Mein ursprünglicher Befehl:
Jetzt wird (mit
-P
Perl-Schalter):quelle