Citrix ADC

テキストに対する基本的な操作

テキストの基本的な操作には、文字列の一致、文字列の長さの計算、大文字と小文字の区別を制御する操作が含まれます。式に引数として渡される文字列には、空白を含めることができますが、文字列は 255 文字を超えることはできません。

文字列比較関数

次の表に、関数がブール値 TRUE または FALSE を返す基本的な文字列照合操作を示します。

機能 説明
<text>.CONTAINS(<string>) ターゲットに<string>が含まれている場合、ブール値 TRUE を返します。例:http.req.url.contains(".jpeg")
<text>.EQ(<string>) ターゲットがと完全に一致する場合に、ブール型 TRUE 値を返します<string>。たとえば、次の式は、ホスト名が「myhostabc」の URL に対してブール値 TRUE を返します。http.req.url.hostname.eq("myhostabc")
<text>.STARTSWITH(<string>) ターゲットが<string>で始まる場合は、ブール型 TRUE 値を返します。たとえば、次の式は、ホスト名が「myhostabc」の URL に対してブール値 TRUE を返します。http.req.url.hostname.startswith("myhost")
<text>.ENDSWITH(<string>) ターゲットがで終わる場合に、ブール型 TRUE 値を返します <string>。たとえば、次の式は、ホスト名が「myhostabc」の URL に対してブール値 TRUE を返します。http.req.url.hostname.endswith("abc")
<text>.NE(<string>) プレフィックスが文字列引数と等しくない場合は、ブール型 TRUE 値を返します。プレフィックスが文字列以外の値を返す場合、関数の引数は、プレフィックスによって返される値の文字列表現と比較されます。関数はSET_TEXT_MODE(IGNORECASE) or SET_TEXT_MODE(NOIGNORECASE)、ASCII 文字セットと UTF-8 文字セットの両方で使用できます。
<text>.GT(<string>) プレフィックスが文字列引数よりもアルファベット順に大きい場合は、ブール型 TRUE 値を返します。プレフィックスが文字列以外の値を返す場合、関数の引数は、プレフィックスによって返される値の文字列表現と比較されます。関数は、SET_TEXT_MODE(IGNORECASE) またはSET_TEXT_MODE(NOIGNORECASE) 、ASCII 文字セットと UTF-8 文字セットの両方で使用できます。
<text>.GE(<string> プレフィックスが文字列引数にアルファベット順より大きいか等しい場合、ブール型 TRUE 値を返します。プレフィックスが文字列以外の値を返す場合、関数の引数は、プレフィックスによって返される値の文字列表現と比較されます。関数は、SET_TEXT_MODE(IGNORECASE) またはSET_TEXT_MODE(NOIGNORECASE) 、ASCII 文字セットと UTF-8 文字セットの両方で使用できます。
<text>.LT(<string> プレフィックスが文字列引数よりもアルファベット順に小さい場合は、ブール型 TRUE 値を返します。プレフィックスが文字列以外の値を返す場合、関数の引数は、プレフィックスによって返される値の文字列表現と比較されます。関数は、SET_TEXT_MODE(IGNORECASE) またはSET_TEXT_MODE(NOIGNORECASE) 、ASCII 文字セットと UTF-8 文字セットの両方で使用できます。
<text>.LE(<string>) プレフィックスがアルファベット順に文字列引数以下の場合、ブール型 TRUE 値を返します。プレフィックスが文字列以外の値を返す場合、関数の引数は、プレフィックスによって返される値の文字列表現と比較されます。関数は、SET_TEXT_MODE(IGNORECASE) またはSET_TEXT_MODE(NOIGNORECASE) 、ASCII 文字セットと UTF-8 文字セットの両方で使用できます。

文字列の長さを計算する

<text>.LENGTH演算は、文字列内の文字数(バイト数ではない)に等しい数値を返します。

<text>.LENGTH

たとえば、特定の長さを超えるリクエスト URL を特定できます。次に、この例を実装する式を示します。

HTTP.REQ.URL.LENGTH < 500

文字列内の文字または要素の数を取った後、それらに数値演算を適用することができます。詳しくは、「デフォルトの構文式:日付、時刻、および数値の操作」を参照してください。

テキストの大文字小文字の考慮、無視、変更

次の関数は、文字列内の文字の大文字 (大文字または小文字) を操作します。

|機能|説明| |— |— | |<text>.SET_TEXT_MODE(IGNORECASE| NOIGNORECASE) |この関数は、すべてのテキスト操作で大文字と小文字の区別をオンまたはオフにします。| |<text>.TO_LOWER| ターゲットを小文字に変換し、最大 2 キロバイト (KB) のテキストブロックにします。ターゲットが 2 KB を超える場合、UNDEF を返します。たとえば、文字列「ABCd:」は「abcd:」に変換されます。| |<text>.TO_UPPER| ターゲットを大文字に変換します。ターゲットが 2 KB を超える場合、UNDEF を返します。たとえば、文字列「abcD:」は「ABCD:」に変換されます。.|

文字列から特定の文字を取り除く

STRIP_CHARS (<string>) 関数を使用すると、デフォルトの構文式プレフィックス (入力文字列) によって返されるテキストから特定の文字を削除できます。引数で指定した文字のすべてのインスタンスは、入力文字列から削除されます。結果の文字列には、文字列とパターンセットの一致に使用するメソッドを含め、任意のテキストメソッドを使用できます。

たとえば、CLIENT.UDP.DNS.ドメイン.STRIP_CHARS (「.-_」) という式では、STRIP_CHARS (<string>) 関数によって、プレフィクス CLIENT.UDP.DNS.DOMAIN によって返されたドメイン名からすべてのピリオド (.)、ハイフン (-)、およびアンダースコア (_) が取り除かれます。返されるドメイン名が「.dom_ai_n-name」の場合、この関数は文字列「adomainname」を返します。

次の例では、結果の文字列を「listofdomains」というパターンセットと比較します。

CLIENT.UDP.DNS.DOMAIN.STRIP_CHARS(".-_").CONTAINS_ANY("listofdomains")

注: STRIP_CHARS(<string>)関数によって返される文字列に対して書き換えを実行することはできません。

次の関数は、指定された文字列入力の先頭と末尾から一致する文字を取り除きます。

機能 説明
<text>.STRIP_START_CHARS(s) 一致しない最初の文字が見つかるまで、入力文字列の先頭から一致する文字を取り出し、残りの文字列を返します。除去する文字は、引用符で囲んで単一の文字列として指定する必要があります。たとえば、ヘッダーの名前が TestLang で、:/en_us: がその値である場合、HTTP.RES.HEADER (「TestLang」) .STRIP_START_CHARS (「:」) は、最初に一致しない文字 e が見つかるまで、ヘッダーの値の先頭から指定された文字を取り除き、returnsen_us: を文字列を返します。
<text>.STRIP_END_CHARS(s) 最初に一致しない文字が見つかったまでの入力文字列の末尾から一致する文字を取り出し、文字列の残りの部分を返します。除去する文字は、引用符で囲んで単一の文字列として指定する必要があります。たとえば、ヘッダーの名前が TestLang で、:/en_us: がその値である場合、HTTP.RES.HEADER (「TestLang」) .STRIP_START_CHARS (「:」) は、ヘッダーの値の末尾から指定された文字を取り除き、一致しない最初の文字 s が見つかるまで:/_en_us を文字列を返します。

別の文字列に文字列を追加する

APPEND () 関数を使用すると、前述の関数によって返される値の文字列表現に、引数の文字列表現を追加できます。上記の関数は、数値、符号なし long、double、時刻値、IPv4 アドレス、または IPv6 アドレスを返す関数です。引数には、テキスト文字列、数値、符号なし long、double、時刻値、IPv4 アドレス、または IPv6 アドレスを使用できます。結果の文字列値は、+ 演算子を使用して取得した文字列値と同じです。

テキストに対する基本的な操作