ADC

正規表現の操作

次の表に、正規表現で動作する演算子を示します。特定のデフォルトの構文式で正規表現演算子によって実行される操作は、式プレフィックスがテキストまたは HTTP ヘッダーを識別するかどうかによって異なります。ヘッダーを評価する操作は、指定されたヘッダータイプのすべてのインスタンスに対するテキストベースの操作よりも優先されます。演算子を使用する場合は、<text> テキストを識別するために構成するデフォルトの構文式プレフィクスに置き換えます。

正規表現演算 説明
.BEFORE_REGEX() 引数に一致する文字列の前のテキストを選択します。正規表現がターゲットのどのデータとも一致しない場合、式は長さ 0 のテキストオブジェクトを返します。次の式は、「テキスト/プレーン」から文字列「テキスト」を選択します。http.res.header(「コンテンツタイプ」).before_regex(RE#/#)
.AFTER_REGEX() 引数に一致する文字列の後のテキストを選択します。正規表現がターゲットのどのテキストとも一致しない場合、式は長さ 0 のテキストオブジェクトを返します。次の式は、「myExample」から「例」を抽出します。http.req.ヘッダー(「etag」).after_regex(再/私の/)
.REGEX_SELECT() 引数に一致する文字列を選択します。正規表現がターゲットと一致しない場合、長さ 0 のテキストオブジェクトが返されます。次の例では、Viaヘッダーから文字列「NS-CACHE-9.0:90」を抽出します。http.req.header("via").regex_select(re!NS-CACHE-\d.\d:\s*\d{1,3}!)
.REGEX_MATCH() ターゲットが 1499 文字までの引数に一致する場合に TRUE を返します。正規表現は、次の形式である必要があります。re 正規表現< delimiter> 両方の区切り文字は同じである必要があります。さらに、正規表現は 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とaに一致する:http.req.url.regex_match (re/a (?i) b/) 次の例では、ab、aB、Ab、Ab、AB とマッチします。http.req.url.set_text_mode (ignoreCase) .regex_match (re/ab/) 次の例では、大文字と小文字を区別しない複数行の一致を実行します。http.req.body.regex_match (re/ (?ixm) (^ab (.*) cd$)/)
正規表現の操作

この記事の概要