正規表現
正規表現(一般的にregexとして知られています)は、検索パターンを定義する文字列です。正規表現を使用すると、テキストのグループ化を検証したり、検索と置換のアクションを実行したりできます。Brazeでは、正規表現を活用して、ターゲットオーディエンスのセグメンテーションやキャンペーンフィルタリングにおいて、より柔軟な文字列マッチングソリューションを提供しています。
このページでは、正規表現(regex)の概要、使い方、よくある質問、および正規表現をテストするためのregexデバッガーについて説明しています。
リンク先のBrazeラーニングコースでは、正規表現をRegex101で使用およびテストする方法を紹介しています。また、組み込みのregexテスター、便利なリファレンスページ、regexのBrazeラーニング動画で参照されるサンプルデータ、およびよくある質問も提供しています。
リソース
- 正規表現の基礎 Braze Learningコース
- 正規表現チートシート
- サンプルデータ RTF
正規表現デバッガー

このツールはあくまで参考用であり、Brazeプラットフォームでの正規表現の一致を100%保証するものではありません。Brazeでのセグメンテーションおよびフィルター用の正規表現には、自動的に/gi修飾子が付加されます。gi修飾子は、文字列内の正規表現に一致するすべての箇所を大文字・小文字を区別せずに検索するために使用されます。
カスタムイベントのトリガープロパティおよびトリガーフィルター用の正規表現では、/g修飾子(大文字・小文字を区別、g修飾子を参照)を使用し、/i修飾子は使用しません。カスタムイベントのトリガープロパティおよびトリガーフィルターで大文字・小文字を区別しない検索を行うには、代わりに(?i)を使用してください。例えば、Matches regex (?i)STOP(?-i)は、あらゆる大文字・小文字の組み合わせでの「STOP」の使用(「stop」、「please stop」、「never stop sending me messages」など)に一致します。
チェック値:
一致結果:
よくある質問
does not match regex フィルターには空白値が含まれますか?
いいえ。値が空白の場合、そのユーザーは does not match regex フィルターに含まれません。
文字列カスタム属性に対して、複数の正確な値のいずれかに一致させる(OR ロジック)にはどうすればよいですか?
先頭アンカーと末尾アンカーを使った交互パターンを使用して、各値が正確に一致し、部分一致が発生しないようにします。たとえば、gold、silver、または bronze に正確に一致させるには次のようにします。
1
(^gold$)|(^silver$)|(^bronze$)
セグメンテーション時に、受信トレイ固有のメールアドレスをフィルタリングするにはどうすればよいですか?
メールアドレスフィルターを使用し、matches regex に設定します。次に、メールアドレス用の正規表現を参照します。
1
[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z.-]+
この正規表現は次の3つの部分に分けることができます。
[a-zA-Z0-9.+_-]+は@文字の前のメールアドレスの先頭部分です。「[email protected]」の「name」にあたります。[a-zA-Z0-9.-]+はドメインの最初の部分です。「[email protected]」の「example」にあたります。[a-zA-Z.-]+はドメインの最後の部分です。「[email protected]」の「com」にあたります。
特定のドメインに関連付けられたメールアドレスをフィルタリングするにはどうすればよいですか?
たとえば、「@braze.com」で終わるメールをフィルタリングしたいとします。メールアドレスフィルターを使用し、matches regex に設定して、正規表現フィールドに「@braze.com」と入力します。他のメールドメインにも同様に適用できます。

x 以上 (≥) または x 以下 (≤) の値で数値文字列をフィルタリングするにはどうすればよいですか?
x 以上 (≥) の値を検索する場合は、次の正規表現を使用します。
1
^([x-y]|\d{z,})$
ここで x-y は最初の桁の数値範囲(0-9)、z は x の桁数より1つ多い数です。たとえば、50以上の値に対する正規表現は ^([5-9][0-9]|\d{3,})$ となります。
x 以下 (≤) の値を検索する場合は、次の正規表現を使用します。
1
^([x-y]|[a-b])$
ここで x-y は最初の桁の数値範囲(0-9)、a-b は x の下限範囲です。たとえば、50以下の値に対する正規表現は ^([5-9][0-9]|[0-4][0-9])$ となります。
特定の文字列で始まるカスタム属性をフィルタリングするにはどうすればよいですか?
キャレット記号(^)を使用して文字列の先頭を示し、指定したいカスタム属性の名前を入力します。
たとえば、「San」で始まる都市に住むユーザーをターゲットにしたい場合、正規表現は ^San \w になります。この正規表現を使用すると、San Francisco、San Diego、San Jose などの都市のユーザーを正常にターゲットにできます。

特定の電話番号をフィルタリングするにはどうすればよいですか?
正規表現を使用して電話番号をフィルタリングする前に、ユーザープロファイルに記録されている番号は、ユーザーの電話番号で指定されているとおり、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 となります。
英国の携帯電話番号が先頭に + なしで 447 から始まる一般的な形式(たとえば 447123456789)で保存されている場合は、次のように一致させることができます。
1
^447\d{9}$
たとえば、特定の市外局番「718」で電話番号をフィルタリングしたいとします。電話番号フィルターを使用し、matches regex に設定して、次の正規表現を入力します。
1
^1?718\d\d\d\d\d\d\d

セグメントとカスタムイベントトリガープロパティでは、正規表現のマッチングはどのように異なりますか?
セグメントフィルターは大文字小文字を区別しないマッチング(/gi 修飾子に相当)を自動的に適用します。カスタムイベントトリガープロパティとトリガーフィルターは大文字小文字を区別するマッチング(/g のみに相当)を使用します。
トリガープロパティで大文字小文字を区別しないマッチングが必要な場合は、パターンでインラインフラグを使用します。たとえば、(?i)STOP(?-i) を使用すると、stop、STOP、または Stop に一致させることができます。
その他の例については、正規表現デバッガーセクションのメモを参照してください。