正規表現
正規表現は、一般に「regex」として知られ、検索パターンを定義する文字のシーケンスです。正規表現では、テキストのグループ化を検証し、検索と置換を実行できます。Braze では、正規表現を活用し、ターゲットのセグメンテーションやキャンペーンのフィルタリングにおいて、より柔軟な文字列マッチングソリューションを提供します。
リンク先の Braze Learning コースでは、Regex101 で正規表現がどのように使用され、テストされるかを紹介しています。また、社内の正規表現テスター、役立つ参考ページ、正規表現 Braze ラーニングビデオで参照されているサンプルデータ、よくある質問も提供しています。
リソース
- 正規表現の基礎 Braze ラーニングコース
- 正規表現チートシート
- [サンプルデータ RTF][dummydata]
正規表現デバッガ
このフォームでは、基本的な検証と正規表現のテストを行うことができます。
このツールはあくまで参考であり、正規表現が Braze プラットフォーム と100% 一致することを保証するものではありません。Braze のセグメンテーションとフィルター用の正規表現では、自動的に /gi
修飾子が追加されます。gi 修飾子は、文字列中に出現する正規表現を大文字小文字を区別せずに検索するために使われます。
カスタムイベントトリガープロパティの正規表現では、/g
修飾子 (大文字と小文字を区別します。g 修飾子を参照) を使用し、/i
修飾子は使用しません。カスタムイベントトリガープロパティの大文字と小文字を区別しない場合は、代わりに (?i)
を使用します。
値をチェック:
一致結果:
よくある質問
does not match regex
フィルターは空白値を含みますか?
いいえ。値が空白の場合、そのユーザーは does not match regex
フィルターに含まれません。
セグメンテーションの際、受信トレイ固有のメールアドレスをフィルタリングするにはどうすればよいですか?
メールアドレスフィルターを使い、matches regex
に設定します。次に、メールアドレスの正規表現を参照します:
1
[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z.-]+
この正規表現は以下の 3 つの部分に分解できます:
[a-zA-Z0-9.+_-]+
はメールアドレスの先頭で、その後アットマーク@
が続きます。つまり、「name@example.com」の「name」の部分です。[a-zA-Z0-9.-]+
はドメインの最初の部分です。つまり、「name@example.com」の「example」です。[a-zA-Z.-]+
はドメインの最後の部分です。つまり、「name@example.com」の「com」です。
特定のドメインに関連するメールアドレスをフィルタリングする方法を教えてください。
例えば、”@braze.com” で終わるメールをフィルタリングしたいとします。メールアドレスフィルターを使い、matches regex
に設定し、正規表現フィールドに “@braze.com” と入力します。他のメールドメインでも同様です。
![](/docs/ja/assets/img/regex/regeximg1.png?6f4deb980233b96eb3c9da839477edfa)
値 ≥x または ≤x の場合、フィルターの番号文字列はどのように使用できますか?
(≥) x 以上の値を検索する場合は、以下の正規表現を使います:
1
^([x-y]|\d{z,})$
ここで、x-y
は最初の桁の数字(0~9)の範囲であり、z
は x の桁数以上の数字です。例えば、50 以上の値の場合、正規表現は^([5-9][0-9]|\d{3,})$
となります。
(≤) x 以下の値を検索する場合は、以下の正規表現を使います:
1
^([x-y]|[a-b])$
ここで、x-y
は 1 桁目の数字(0~9)の範囲、a-b
は x の下限範囲です。例えば、50 以下の値の場合、正規表現はx-y
となります。
特定の文字列で始まるカスタム属性をフィルタリングするには?
キャレット記号 (^
) で文字列の先頭を表し、指定したいカスタム属性名を入力します。
例えば、”San” で始まる都市に住むユーザーをターゲットにする場合、正規表現は ^San \w
とします。この正規表現を使えば、サンフランシスコ、サンディエゴ、サンノゼなどの都市のユーザーをターゲットにできます。
![](/docs/ja/assets/img/regex/regeximg2.png?956e5c1fd1175fdc07afcfff767043df)
特定の電話番号をフィルタリングする方法を教えてください。
正規表現を使用して電話番号をフィルタリングする前に、ユーザープロファイルに記録される番号は、「ユーザーの電話番号」で指定されているように、E.164 形式でなければいけません。
米国の電話番号を検索すると仮定すると、正規表現フォーマット 1?\d\d\d\d\d\d\d\d\d\d
を使用します。\d
の各繰り返しは、指定したい桁数です。最初の 3 桁は市外局番です。
同様に、英国の電話番号の書式は ^\+4\d\d\d\d\d\d\d\d\d\d\d
です。その他の国は、それぞれの国番号の後に、残りの各桁について必要な数の \d
を繰り返します。つまり、国番号が “3” のリトアニアの場合、正規表現は^\+3\d\d\d\d\d\d\d\d\d\d
となります。
例えば、特定の市外局番 “718” の電話番号でユーザーをフィルタリングしたいとします。電話番号フィルターを使い、matches regex
に設定し、以下の正規表現を入力します:
1
^1?718\d\d\d\d\d\d\d
![](/docs/ja/assets/img/regex/regeximg3.png?22cd21c857d867af6e0e7799cd81e6aa)