Google Analyticsを設定するときに「もっと融通がきいたらいいのにな…」と思う事はありませんか?
それ、正規表現でできるかもしれませよ!
目次
正規表現でできる事
そもそも「正規表現」って何のために使うのでしょう?
正規表現とは、特殊文字や記号を使った一つの文字列で、複数の異なる文字列を表現する仕組みです。
詳しくはこちらの記事もご覧ください。
Google Analyticsでは、何か動的な文字列を、正規表現を使ってあらわす事ができます。
以下に例をとってご説明しますね。
IPアドレス除外の方法
自社で利用しているIPアドレスを、Google Analyticsから除外したい!というとき。
「下4ケタが、パソコンによって違うんだけど…一台一台設定しないとだめ?」
そんな事もあるかと思います。
そこで役に立つのが正規表現!
数字の羅列を、特殊文字に置き換えてしまいましょう。
除外したいIPアドレスが
だった場合。
正規表現の場合にはまず「ドットの前には\マークを記述」します。
次に「XXXX」に入る文字列を置き換えます。
ここに入るのは数字、0~9のうちのどれかですよね?
なので、正規表現ではこうなります。
[]で囲まれた部分には0~9の中の1文字が入ります。
そして、[]の外に記述してある+が「[]で囲まれた文字が1回以上繰り返されるよ!」という事を表しています。
こちらはURLでも利用できます。
よく数字の羅列で生成されたページがありますよね?
かくいうこのGo-Nextブログも、「カテゴリ+数字の羅列」でページが作成されています。
今度はそちらを指定してみましょう。
URLを指定する方法
数字の羅列で作成したURLを、正規表現を使ってまとめて指定してみましょう。
このGo-Nextブログでは、
ドメイン / blog / 大カテゴリ名 / 小カテゴリ名 / 数字の羅列 /
といったURLが使用されています。
この「数字の羅列」を置き換えるのは、先ほどのIPアドレスと同じ正規表現が利用できます。
先ほども書きましたが「ドットの前には\マーク」を付けてくださいね!
そして今回の例の場合は、ハイフンの前にも\マークが必要です。
これで「WEBカテゴリの中のillustratorカテゴリの記事すべて」を表現する事ができました。
今回の例ではありませんでしたが、よくURLで利用される「/?q=submit」といった表現がありますよね。
この場合には「?の前にも\マーク」を付けてください。
URLに含まれる「数字以外の文字列」を置き換える場合
先ほどの例では「大カテゴリがWEBで、小カテゴリがillustratorの記事」を指定しました。
ですが場合によっては「大カテゴリには何が入るか解らないけど、子カテゴリillustratorの記事だけを指定したい」という事も出てきますよね?
そんな場合に利用できる正規表現です。
まずは先ほどの正規表現。
こちらから、大カテゴリの「WEB」という文字列が「何か解らない文字列」になっても対応できるようにしましょう。
その正規表現がこちら。
/と/の間の文字列がさし替わっています。
「[]+」については先程と同じく「[]に囲まれた文字が1回以上繰り返される」という意味です。
先程は「0-9」だったので、「0~9のうちのどれかが繰り返される」という意味でした。
今度は[]の中に「^/」が入っていますね。
これは「/以外」という意味になります。
「^」には「その後の文字を含まない」という意味があります。
つまり「[^/]+」という表記で「/以外の文字が繰り返される」という意味になります。
こちらの応用として「子カテゴリが入るかどうか解らないけど、とにかく記事ページだけ指定したい!」という場合もあるかと思います。
そんな場合はこちら。
左から見ていきましょう。
まずは先程と同様、ドットとハイフンの前には\を付けていきましょう。
次に、大カテゴリは必ず入るので、先ほどと同じ「[^/]+/」で置き換えます。
問題はその次。小カテゴリが入るかどうかわかりません。
そこで「([^/]+/)?」を使用していますね。
こちら先ほどの[^/]+/を()で閉じて、?を記述してあります。
?は「前の文字が0回か1回繰り返す」という意味です。
つまりこの場合、「()内の文字列が、無いかもしれないし、1回はあるかもしれない」という意味です。
これで小カテゴリがある場合にも無い場合にも対応できます。
その後数字が入り、最後に/が入って、URLの完成ですね!
余談ですが、最後に$を付けると「ここが最後だぞ!」って表せるみたいですよ。
任意の1文字の繰り返し
これまでの正規表現により、さまざまな場合がカバーできるのではないでしょうか。
ここでもう一つご紹介したいのが「任意の1文字」と「0回以上の繰り返し」です。
「任意の1文字」は「.(ドット)」で表され、
「0回以上の繰り返し」は「*(アスタリスク)」で表されます。
つまり「.*」では「何か解らない文字が、ないかもしれないし、何個もあるかも」という事です。
もう「どんな場合も当てはまる」と言って過言ではありません。
(実際には違うかもしれませんが、素人の感覚ではそんな感じです。)
URLで「.*」を指定すると「すべてのURL」が指定されますので、上手に利用してください。
正規表現に必要な「エスケープ」
最後に、各所に出てきた「\」についてご説明したいと思います。
正規表現では「.(ドット)」は「任意の1文字」とご説明しましたよね?
つまり正規表現で書かれたURLでは「www.」などの「.(ドット)」も、「何か1文字入るぞ!」という意味になってしまいます。
そこで登場するのが「\」です。
\には「後に続く文字を、文字として認識する」という意味があるのです。
つまり「\.」と書いて初めて「.(ドット)という記号が入ります」と指定する事ができます。
その他にも、「ハイフン」や「?」も正規表現として意味を持っていますので、文字として認識させるには、それぞれ記号の前に\マークが必要ですので、注意してください。
詳しくはこちらもご参照ください。正規表現について – アナリティクス ヘルプ
ちなみに、「\」マークをGoogle Analyticsで入力すると、「バックスラッシュ」として表示されますが、問題ありませんのでびっくりしないでくださいね!
まとめ
こうした表現が解るようになることで、解析の幅が広がるのではないでしょうか。
正規表現をマスターしようと思うと大変ですが、Google Analyticsで頻出する表現くらいなら覚えてしまって損はないですよ!