124

Google アナリティクスでいくつかの目標を設定していますが、少し正規表現を使用できます。

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

文字列selector=sizeを含み、details.cfmを含まない URL を識別する式を作成したいと考えています。

別の文字列を含まない文字列を見つけるには、次の式を使用できることを知っています。

(^((?!details.cfm).)*$)

しかし、 selector=size部分を追加する方法がわかりません。

どんな助けでも大歓迎です!

4

5 に答える 5

172

これはそれを行う必要があります:

^(?!.*details\.cfm).*selector=size.*$

^.*selector=size.*$十分に明確でなければなりません。最初のビット(?!.*details.cfm)は否定先読みです。文字列を照合する前に、文字列に「details.cfm」が含まれていないことを確認します (その前に任意の数の文字があります)。

于 2010-06-01T20:26:45.450 に答える
4
^(?=.*selector=size)(?:(?!details\.cfm).)+$

あなたの正規表現エンジンがポーズ量指定子をサポートしている場合 (Google アナリティクスはサポートしていないと思いますが)、大きな入力セットに対しては、これがより適切に機能すると思います。

^[^?]*+(?<!details\.cfm).*?selector=size.*$
于 2010-06-01T20:27:02.860 に答える
3

正規表現は次のようになります (perl 構文):

`/^[(^(?!.*details\.cfm).*selector=size.*)|(selector=size.*^(?!.*details\.cfm).*)]$/`
于 2010-06-01T20:35:00.490 に答える
0

受け入れられた回答の正規表現に問題があります。などにもマッチ abcselector=sizeします。selector=sizeabc

正しい正規表現は^(?!.*\bdetails\.cfm\b).*\bselector=size\b.*$

regex101での正規表現の説明:

ここに画像の説明を入力

于 2021-03-31T00:12:43.373 に答える