正規表現で動作する演算子のターゲットテキストは、テキストまたは HTTP ヘッダーの値のいずれかです。次に、正規表現演算子を使用してテキストを操作するデフォルトの構文式の形式を示します。
<text>.<regex_operator>(re<delimiter><regex_pattern><delimiter>)
この<text>文字列は、パケット内のテキスト文字列を識別するデフォルトの構文式プレフィックス(HTTP.REQ.URL など) を表します。文字列は、<regex_operator>正規表現演算子 を表します。正規表現は常に文字列 re で始まります。正規表現を表す文字列<regex_pattern>は、<delimiter>で表される一致区切り文字のペアで囲みます。
次の式例は、HTTP パケット内の URL に文字列*.jpeg (* はワイルドカード)が含まれているかどうかを調べ、結果を示すブール値 TRUE または FALSE を返します。正規表現は、区切り文字として機能するスラッシュマーク(/)のペアで囲まれています。
http.req.url.regex_match(re/.<asterisk>\.jpeg/)
正規表現演算子を組み合わせて、検索の範囲を定義または絞り込むことができます。たとえば、<text>.AFTER_REGEX(reregex_pattern1).BEFORE_REGEX(reregex_pattern2)は、文字列マッチングのターゲットが、パターン regex_pattern1 と regex_pattern2 の間のテキストであることを指定します。正規表現演算子によって定義されたスコープでは、テキスト演算子を使用できます。たとえば、CONTAINS ("<string>") 演算子を使用して、定義されたスコープに文字列 abc が含まれているかどうかを確認できます。
<text>.AFTER_REGEX(re/regex_pattern1).BEFORE_REGEX(re/regex_pattern2/).CONTAINS("abc")
正規表現を評価するプロセスは、単純な文字列引数で動作する CONTAINS ("<string>") や EQ ("<string>") などの演算子よりも本質的に時間がかかります。正規表現は、要件が他の演算子の範囲を超えている場合にのみ使用してください。