ADC

正規表現の演算

次の表では、正規表現を操作する演算子について説明します。特定の高度なポリシー式で正規表現演算子によって実行される操作は、式のプレフィックスがテキストヘッダーまたは HTTP ヘッダーを識別するかどうかによって異なります。ヘッダーを評価する操作は、指定されたヘッダータイプのすべてのインスタンスのテキストベースの操作をオーバーライドします。演算子を使用する場合は、<text> をテキストを識別するために構成する高度なポリシー式のプレフィックスに置き換えます。

正規表現操作 説明
.BEFORE_REGEX() 引数に一致する文字列の前にあるテキストを選択します。正規表現がターゲットのどのデータとも一致しない場合、この式は長さ 0 のテキストオブジェクトを返します。次の式は、「テキスト/プレーン」から文字列「テキスト」を選択します。http.res.header("content-type").before_regex(re#/#)
.AFTER_REGEX() 引数に一致する文字列に続くテキストを選択します。正規表現がターゲットのどのテキストとも一致しない場合、この式は長さ 0 のテキストオブジェクトを返します。次の式は「MyExample」から「Example」を抽出します。http.req.header("etag").after_regex(re/my/)
.REGEX_SELECT() 引数に一致する文字列を選択します。正規表現がターゲットと一致しない場合、長さ 0 のテキストオブジェクトが返されます。次の例では、Via ヘッダー: http.req.header("via").regex_select(re!NS-CACHE-\d.\d:\s*\d{1,3}!)から"NS-CACHE-9.0: 90"という文字列を抽出します。
.REGEX_MATCH() ターゲットが最大 1499 文字の\ 引数に一致する場合は TRUE を返します。正規表現は次の形式でなければなりません:re expression 両方の区切り文字は同じでなければなりません。さらに、正規表現は Perl 互換 (PCRE) の正規表現ライブラリ構文に準拠している必要があります。詳しくは、http://www.pcre.org/pcre.txtを参照してください。特に、pcrepattern のマニュアルページを参照してください。ただし、次の点に注意してください。後方参照は許可されません。再帰的な正規表現はお勧めしません。ドットメタ文字は改行文字にもマッチします。Unicode 文字セットはサポートされていません。SET_TEXT_MODE(IGNORECASE) が正規表現で指定された (?i) 内部オプションを上書きします。*例は次のとおりです:http.req.hostname.regex_match (re/ [: alpha:]] + (abc) {2,3}/) と http.req.url.set_text_mode (urlencoded) .regex_match (re# (a b+c) #) 次の例は ab と aB にマッチします:http.req.url.regex_match (re/a (?*i) b/) 次の例は ab、aB、Ab、AB にマッチします。http.req.url.set_text_mode (ignorecase) .regex_match (re/ab/) 次の例では、大文字と小文字を区別しない複数行のマッチを実行します。このマッチでは、ドットのメタ文字が改行文字とも一致します。http.req.body.regex_match (re/ (?ixm (^ab (.*) (cd$)/)
正規表現の演算

この記事の概要