正規表現で機能する演算子のターゲットテキストは、テキストまたは HTTP ヘッダーの値のいずれかです。次に、正規表現演算子を使用してテキストを操作する高度なポリシー式の形式を示します。
<text>.<regex_operator>(re<delimiter><regex_pattern><delimiter>)
この文字列<text>は、パケット内のテキスト文字列(HTTP.REQ.URL など)を識別する高度なポリシー式のプレフィックスを表します。文字列<regex_operator>は正規表現演算子を表します。正規表現は常に文字列 re で始まります。<delimiter>で表される一対の一致する区切り文字は 、 正規表現を表す文字列<regex_pattern>を囲みます。
次の式例では、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>") などの演算子の場合よりも時間がかかります。正規表現は、要件が他の演算子の範囲を超えている場合にのみ使用してください。