analytics

Googleアナリティクスの正規表現の書き方と記述例

Googleアナリティクスの正規表現の書き方と記述例

今回はGoogleアナリティクスで利用できる正規表現について解説します。記述例や正規表現のチェックに役立つ検証ツールも併せてご紹介しますので、正規表現をマスターしてGoogleアナリティクスを更に活用できるようになりましょう。

正規表現(regex)とは?

正規表現とは一言で説明すると「様々な文字列(URLやテキストなど)を一つの形式で表す表現方法」のことです。元となるデータに共通して存在するパターンを正規表現で指定することで、該当する複数のデータを対象として分析ができるようになります。また、ExcelとGoogleアナリティクスとでは正規表現の書き方が若干異なりますので、Excelの正規表現に慣れている方は混同しないようにしましょう。

また、Googleアナリティクスでは正規表現は以下のような様々な個所で利用できます。

▼正規表現を利用する場所
・ビューフィルタ
・目標設定(CV設定)
・カスタムセグメント
・アドバンスフィルタ
・コンテンツグループ
・チャネルグループ
・・・などなど

Googleアナリティクスで利用する正規表現一覧

▼ワイルドカード

記号 条件 記述例 該当例
. 任意の1文字(文字、数字、記号)に一致 例:「A.」で一致 AA、A1
例:「A.B」で一致 ABB 、 A1B
? 直前の文字が0か1回出現する場合に一致 例:「AB?」で一致 A 、 AB
例:「AB?C」で一致 AC 、 ABC
+ 直前の文字が1回以上出現する場合に一致 例:「AB+」で一致 AB 、 ABBBBBB
例:「AB+C」で一致 ABC 、 ABBBBC
* 直前の文字が 0 回以上出現する場合に一 例:「AB*」で一致 A 、 ABBBBBB
例:「AB*C」で一致 AC 、 ABBBBC
| OR 条件
※どちらか一方があれば一致 例:「A|B」で一致
※AかBを含んでいれば一致
A 、 B 、 AB

▼アンカー

記号 条件 記述例 該当例
^ 隣接する文字が文字列の先頭であれば一致 例:「^A」で一致
※文字列の先頭がAならば一致
AABC
例:「^AB」で一致
※文字列の先頭がABならば一致
AB 、 ABC
$ 隣接する文字が文字列の末尾である場合に一致 例:「Z$」で一致
※文字列の末尾がAならば一致
Z、 XYZ
例:「XYZ$」で一致
※文字列の末尾がABならば一致
XYZ 、 VWXYZ

▼グループ

記号 条件 記述例 該当例
( ) 正規表現をグループ化 例:「(A)」で一致
※文字列にAを含んでいれば一致
AABAC
例:「ABC」で一致
※文字列にABCを含んでいれば一致
ABC、AABCAC
[ ] 囲まれた文字が1個でも文字列に含まれる場合に一致 例:「A」で一致
※文字列にAを含んでいれば一致
AABAC
例:「ABC」で一致
※文字列にAかBかCを含んでいれば一致(順不同でも可)
ABVAC
角かっこ内の文字範囲が文字列に含まれる場合に一致 例:「0-9」で一致
※文字列0〜9の半角数字を含んでいれば一致
0,1,2,3,4,5,6,7,8,9
例:「[a-z]か[A-Z]」で一致
※文字列a〜z、A〜Zの半角文字を含んでいれば一致
a,b,z,A,B,Z

▼エスケープ文字

記号 条件 記述例 該当例
\ 隣接する文字を正規表現のメタ文字としてではなく通常の文字として扱う 例:「A\?」で一致
※文字列にA?を含んでいれば一致
A?、ABCA?VVV
例:「3\.14」 3.143.1415

上記がGoogleの公式サイトに記載している正規表現です。最新のGoogleアナリティクスで利用できる正規表現の仕様や詳細については以下のGoogle公式ヘルプページを参照してください。

しかし、実際にはGoogleアナリティクスで利用できる正規表現は他にもあり、以下のようなものが利用できますので、覚えておくと便利です。

記号 条件 記述例 該当例
[^] [ ]内の文字の否定
※対象が逆になる
例:「^0-9」で一致
※文字列に0〜9を含んでいなければ一致
ABC、あいうえお
例:「^abc」で一致
※文字列にa,b,cを含んでいなければ一致
pen、あいうえお
[a-zA-Z0-9] 角かっこ内の文字範囲が文字列に含まれる場合に一致
※[ ]に複数範囲をかける
例:「[a-zA-Z]」で一致
※文字列にa〜zまたはA-Zを含んでいれば一致
Apple、レベルUP
例:「[あ-んア-ン]」で一致
※文字列にあ~んまたはア~ンを含んでいれば一致
ピン芸人 、 ゴージャス
[!-~] 半角文字1文字 例:「[!-~]」で一致
※半角文字1文字を含んでいれば一致
iPhoneX、トキワ荘101
例:「[^!-~]」で一致
※半角文字以外(全角)を含んでいれば一致(^が付いているので上の例の否定)
りんご、トキワ荘101
{n} n回の繰り返し 例:「[0-9]{3}」で一
※3桁の0~9の数字に一致
123777
{n,} n回以上の繰り返し 例:「[0-9]{3,}」で一
※3桁以上の0~9の数字に一致
1231234567890
{n,m} n回以上、m回以下の繰り返し 例:「[0-9]{3,5}」で一致
※3~5桁の0~9の数字に一致
12312345
\w 半角のアルファベット、数字、アンダースコア1文字 例:「\w」で一致 10$_2、トキワ荘101
\W アルファベット、数字、アンダースコア以外の1文字
\wの否定
例:「\W」で一致 10$_2 、トキワ荘101
\d  半角数字1文字
※[0-9]と同じ
例:「\d」で一致 10$_2、トキワ荘101
\D 半角数字以外の1文字
\dの否定。[^0-9]と同じ
例:「\D」で一致 10$_2 、トキワ荘101
\s 空白1文字 例:「\s」で一致 ※空白1文字
\S 空白以外の1文字
\sの否定
例:「\S」で一致 ※空白以外の1文字

正規表現のテスト方法

正規表現に慣れていない方は実際のGoogleアナリティクスで正規表現を作ることを推奨しますので、練習に利用できるGoogleアナリティクスのデモアカウントと検証ツールを紹介します。

Googleアナリティクスのデモアカウント

“実際のGoogleアナリティクスでテストしたいけどテスト環境がない”という方向けにGoogleは誰でも利用できるデモアカウントを公開しています。これはGoogleのGoogle Merchandise StoreというECサイトの実際のデータをGoogleアナリティクスで確認できるもので目標設定やアカウントのフィルタなどはできませんが、カスタムセグメントやアドバンスフィルタなど正規表現の設定は可能でGoogleアナリティクスの勉強に役立ちます。簡単に利用することができますので、ご興味がある方は以下のヘルプページからデモアカウントの権限を取得してください。

Googleアナリティクス

図. デモアカウントのGoogleアナリティクス

正規表現の検証ツール

正規表現の検証ツールを探すと多種多様なものがありますが、筆者のおすすめは以下の2つのツールです。

■KAIZEN PLATFORM (正規表現チェック)

KAIZEN PLATFORMの使用例

図. KAIZEN PLATFORMの使用例

KAIZEN PLATFORMはUI的に使いやすいため、初心者でも簡単に利用できると思います。対象になるならないも分かりやすく識別してくれます。

■DebuggexBata

DebuggexBataの使用例

図. DebuggexBataの使用例

上記図の①~③は他ツールでも対応していますが、一番の強みは④の処理チャートを表示してくれる点です。チャートで可視化してくれることから想定外の処理や見落としの発見、理解に役立ちます。また、誰かに正規表現の説明をする際にもこのチャートがあると処理内容を説明しやすくなります。記事内の正規表現の記述例でも本ツールの処理チャートを利用して解説します。

正規表現の記述例

正規表現の一覧表を見るよりも実際の記述例を見た方が理解しやすいので、ここからはよく利用する正規表現の記述例を紹介します。

|パイプラインの正規表現の例

OR条件を利用してアドバンスフィルタを設定した記述例を紹介します。

▼条件
/AA/または/BB/または/CC/を含むURL

▼正規表現の記述例
/AA/|/BB/|/CC/

▼対象となるURL例
/example1/AA/item/shoes
/directory2/BB/item/shirt
/category3/CC/item/bag

正規表現の処理チャート(事例1)

図. 正規表現の処理チャート(事例1)

処理チャートからもAAとBB、CCを並列で処理対象にしているのがわかります。

()カッコの正規表現の例

▼条件
・/example X /の後ろに/AA/または/BB/または/CC/が続くURL
※Xは1桁の数字

▼正規表現の記述例
/example[0-9](/AA/|/BB/|/CC/)

▼対象となるURL例
/example0/AA/ item/shoes
/example5/BB/ item/glass
/example9/CC/ item/parasol

正規表現の処理チャート(事例2-1)
図. 正規表現の処理チャート(事例2-1)

チャートを見ても/example0~9の後にAAとBB、CCが並列で処理するようになっています。

先ほどのORのみと比較すると[0-9]や()が入ってきて複雑になりました。[0-9]は0~9の数字を表すことは序盤の表で説明しました。()はなぜ必要かというと正規表現を()を無い状態にしてOR条件の|で分解するとわかります。

▼()なしの正規表現を分解してみる。
()が無い場合の正規表現:/example[0-9]/AA/|/BB/|/CC/
⇩|の位置で分解
/example[0-9]/AA/
/BB/
/CC/

事例2-2

図. 正規表現の処理チャート(事例2-2)

チャートを見るとわかりますが、AAは大丈夫ですが、CCとBBは/example[0-9]なしの状態でも対象とする条件になっていました。そうならないように()の「他の正規表現をグループ化する」特性を利用してひとまとめにしています。余談ですが無理やり()を使わないで記述すると以下のような書き方でもできます。

▼正規表現の記述例
()あり:/example[0-9](/AA/|/BB/|/CC/)
()なし:/example[0-9]/AA/|/example[0-9]/BB/|/example[0-9]/CC/

事例2-3

図. 正規表現の処理チャート(事例2-3)

※()を利用しなくても記述できますが、()を利用した方が短くてスマートです。

▼補足
※Xが2桁(00~99)で固定されている場合は/example[0-9][0-9](/AA/|/BB/|/CC/)と記述すると2桁になります。1桁~2桁(0~99)場合は、/example[0-9] [0-9]?(/AA/|/BB/|/CC/)と?を入れます。(?は左隣にある[0-9]を0~1個として扱うので1桁にも対応します)

^キャレット、 $ドル、.ドット、*アスタリスクの正規表現の例

▼条件
・/product/から始まり/page1.htmlで終わるURL

▼正規表現の記述例
^/product/.*page1\.html$

▼対象となる(ならない)URL例
なる:/product/page1.html
なる:/product/item/page1.html
ならない:category/product/page1.html

正規表現の処理チャート(事例3-1)

図. 正規表現の処理チャート(事例3-1)

※DebuggexBataを利用している場合は^$を利用可能にするためにキャプチャーの個所にチェック

/product/から始まり/page1.htmlで終わるので先頭に^をつけ、末尾に$をつけて^/product/page1.html$となります。さらに.ドットが含まれているため、これは正規表現ではなく文字として認識してほしいため\バックスラッシュを付けて\.とします。最後に/product/とpage1.htmlの間に別の文字列が入っても良い状態にするために.*をいれます。これは最初の一覧表に記載している通り.ドットは「任意の 1 文字」を表し、*は「左隣の文字が0以上存在する」事を表します。これを.*として繋げることで「任意の文字が0回以上存在する」という意味になり、.*の部分はどんな文字がどれだけ存在しても対象となります。余談ですが、「任意の文字が1回以上存在する」にする場合は.+となります。

上記が主な正規表現の記述例でした。次は目的別での記述例をいくつか紹介します。

サイト内(example.com)全てのURLを完全一致で指定する※パラメータも含む

^http(|s)://example.com/(\?.+)?

■解説
Google アナリティクスは基本的に “完全一致”ではなく、”含む”条件のため^http(|s)://example.com/ だけで良いのですが、正規表現の練習のため完全一致の書き方で説明します。

赤字:URLはhttpから始まるため^を入れる。
緑字:httpだけでなく、httpsにも対応させるために(|s)とする。
青字\?は?をテキストと扱います。.+は任意の文字が1回以上存在する事を表します。つまりこれらはURLパラメータ(http//example.com/?page=1&new=0のようなURLの末尾に付与される物)を対象としています。ただ、パラメータが無い場合もあるため、これらを()で囲み?をつけることで0 か1 回の表示となるので、パラメータの有無に関係なく対象とすることができます。

パラメータが付与されているURLのみ指定する

\?

■解説
パラメータ(例:http//example.com/?page=1)の頭には必ず?マークが付きますので、?を含むという条件にするだけで良いです。余談ですがパラメータが2個以上(1個以下は含まない)という条件ならば (例:http//example.com/?page=1&new=0)のように&や赤字の記号が入るため\?.+=.+&.+=と記載すれば対象となります。

特定のディレクトリのみ指定する

ディレクトリ名A|ディレクトリ名B|ディレクトリ名C

■解説
ディレクトリ名を|パイプラインで繋げるだけです。OR条件以外にも条件がある場合は()をつけて(ディレクトリ名A|ディレクトリ名B|ディレクトリ名C)このようにグループ化しましょう。

郵便番号を指定する

パターンA:[0-9]{3}-[0-9]{4}
パターンB:\d{3}-\d{4}
※AB共に処理内容は同じ
\dは[0-9]と同じなので短く記載するとパターンBになる

■解説
郵便番号の形式は000-0000と数字3桁、ハイフン、数字4桁のためこのように記載できます。余談ですが、スマホの電話番号であれば000-0000-0000の形式のため[0-9]{3}-[0-9]{4}-[0-9]{4}となり、加えて市外局番付きの電話番号(0000-00-0000)もスマホと同じ条件で取得したい場合は[0-9]{3,4}-[0-9]{2,4}-[0-9]{4}となります。※あくまで学習用の記述で、実際の市外局番は4桁以外も存在するためローデータに合わせて式を調整する必要があります。ハイフンが無い場合にも対象にしたい場合はハイフンの右に?をつけて0~1個として扱うように処理しましょう。

メールアドレスを指定する

パターンA:([a-zA-Z0-9\._-])+@([a-zA-Z0-9\._-])+\.([a-zA-Z0-9\._-]+)
パターンB:[\w\.-]+@[\w-]+\.[\w\.-]+

\wはアルファベット、数字、アンダースコア1文字

色の該当箇所:column@gmail.com

■解説
最後に複雑そうな物を用意しましたが、ここまで記事を見た方であれば一つ一つ分解して色付けした↑を見れば理解できます。

赤字:英数字に加え、記号(.や_や-)が入ることも考慮した書き方にします。末尾に+を付けて@マーク手前までこの文字が連続することを表します。

緑字:@マークの後ろは必ずgmail.など.ドットが入るのでそこまでの文字を指定します。
青字:ドットマークの後ろに何か来ても良いように記述します。.co.jpのようにドットが2つ存在する場合も対象となる書き方です。

まとめ

正規表現の書き方について記述例を含めてご紹介しましたが、書き方のイメージがついたのではないでしょうか。最初は慣れていないと長い正規表現を見ると混乱してしまうかもしれませんが、一つ一つ分解していけば理解できます。自分で正規表現を作成する場合は紹介した正規表現の検証ツールも試してみてください。本記事が皆様のスキルアップにつながれば幸いです。


ハートラスのサイト分析サービスはこちらご相談やお問い合わせはお気軽にご連絡ください

この記事のライター

石井 貴大

石井 貴大株式会社ハートラス

マーケティングラボディヴィジョン

2013年クロスフィニティ株式会社に入社。SEOを中心とした分析業務に加え、検索結果の変動率調査やコンテンツ制作など多様な業務を担当。
2019年からは株式会社ハートラスに転籍し、RPAツールを主とした社内業務効率改善やWebサイトの解析調査業務に従事。

おすすめの記事

関連する記事