正規表現とは
正規表現とは、さまざまな文字列の集合を1つの文字列で表現する方法です。
Sprocketでは、行動データの[行動データを送信するきっかけ]やステップの[表示するページURL]などで正規表現を利用します。
例えば「example.com/aaa1」と「exaple.com/aaa2」のような複数のURLを両方ともマッチさせたい場合や、特定のパラメータを持つURLを条件にしたい場合などは、正規表現で指定できます。
Sprocketでよく利用する記述例は「Sprocketでよく使う正規表現の記述例」にまとめています。
正規表現で使用する文字
正規表現はすべて半角で入力します。そのなかでも以下の記号は特別な意味を持っており、記号を組み合わせることでさまざまな条件を指定します。
よく使うものとしては「何でも(.*)」「AまたはB(A|B)」のような記述例があります。
. ^ $ [ ] * + ? | ( ) { }
基本的な正規表現の使い方
記号 | 説明 | 記述例 | 当てはまる文字列の例 |
---|---|---|---|
. | 改行以外のあらゆる1文字を表す。 | Spr.cket | Sprocket、Spracketなど |
+ | その直前の文字を1回以上くり返す場合にマッチする。 | Spro+cket | Sprocket、Sproooocketなど |
* | その直前の文字を0回以上くり返す場合にマッチする。 | Spro*cket | Sprcket、Sproooocketなど |
? | その直前の文字を0回か1回くり返す場合にマッチする。 | Spro?cket | Sprcket、Sprocket |
+? | その直前の文字を1回以上くり返す場合にマッチする。最短一致。 | Spro+?cket | Sprocket、Sprooocketなど |
*? | その直前の文字を0回以上くり返す場合にマッチする。最短一致。 | Spro*?cket | Sprcket、Sprooocketなど |
?? | その直前の文字を0回か1回の場合にマッチする。最短一致。 | Spro??cket | Sprcket、Sprocket |
\ | 直後の正規表現の記号をエスケープして通常の文字として扱う。 | Sprocket\? | Sprocket? |
{n,m} | くり返しの回数を指定する。 | Spro{2,4}cket | Sproocket、Sproooocketなど |
(n|m) | いずれかの文字が入っている。 | Spro(c|d)ket | Sprocket、Sprodket |
[nm] | いずれかの文字が入っている(1文字の場合のみ)。 | Spro[cd]ket | Sprocket、Sprodket |
[^n] | 指定した文字以外の文字が入っている。 | Spro[^c]ket | Sproaket、Sprobketなど |
^ | 直後の文字が先頭にある場合にマッチする。 | ^Sprocket | ^Sprocket… |
$ | 直前の文字が末尾にある場合にマッチする。 | Sprocket$ | …Sprocket$ |
[ページ指定]で自動的に付与される正規表現
ステップの表示URLや行動データの条件で[ページ指定]を選択すると、自動的に正規表現が生成され、末尾に付与されます。これは「URLに『?』や『#』から始まるパラメータやアンカーが付いた場合でも、条件に一致すると見なす」という意味の正規表現です。末尾の文字によって、付与される正規表現は異なります。
- URLの最後が「/」の場合、以下の正規表現を付与(「/」の後ろが「index」または「default」で始まっている場合、「/」の後ろは削除されます)
(index\..*|default\..*)?(\?.*)?(#.*)?$
- URLの最後がそれ以外の場合、以下の正規表現を付与
(\?.*)?(#.*)?$
なお、[ディレクトリ指定]の場合は部分一致で判定されますので、正規表現がなくてもすべてのパラメータやアンカーが対象となります。