正規表現について

正規表現とは

正規表現とは、さまざまな文字列の集合を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の最後がそれ以外の場合、以下の正規表現を付与
    (\?.*)?(#.*)?$

なお、[ディレクトリ指定]の場合は部分一致で判定されますので、正規表現がなくてもすべてのパラメータやアンカーが対象となります。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています