Opérations de base sur le texte

Les opérations de base sur le texte incluent les opérations de correspondance de chaînes, de calcul de la longueur d’une chaîne et de contrôle de la sensibilité à la casse. Vous pouvez inclure des espaces blancs dans une chaîne qui est transmise en tant qu’argument à une expression, mais la chaîne ne peut pas dépasser 255 caractères.

Fonctions de comparaison de chaînes

Le tableau suivant répertorie les opérations de correspondance de chaîne de base dans lesquelles les fonctions renvoient une valeur booléenne TRUE ou FALSE.

Fonction Description
<text>.CONTAINS(<string>) Renvoie une valeur booléenne TRUE si la cible contient<string>. Exemple : http.req.url.contains(".jpeg")
<text>.EQ(<string>) Retourne une valeur booléenne TRUE si la cible est une correspondance exacte avec `. For example, the following expression returns a Boolean TRUE for a URL with a host name of “myhostabc”: `http.req.url.hostname.eq (« myhostabc »)\`
<text>.STARTSWITH(<string>) Renvoie une valeur booléenne TRUE si la cible commence par <string>. Par exemple, l’expression suivante renvoie une valeur booléenne TRUE pour une URL avec un nom d’hôte “myhostabc” : http.req.url.hostname.startswith("myhost")
<text>.ENDSWITH(<string>) Renvoie une valeur booléenne TRUE si la cible se termine par <string>. Par exemple, l’expression suivante renvoie une valeur booléenne TRUE pour une URL avec un nom d’hôte “myhostabc” : http.req.url.hostname.endswith("abc")
<text>.NE(<string>) Renvoie une valeur booléenne TRUE si le préfixe n’est pas égal à l’argument chaîne. Si le préfixe renvoie une valeur autre que la chaîne, l’argument fonction est comparé à la représentation sous forme de chaîne de la valeur renvoyée par le préfixe. Vous pouvez utiliser les fonctions avec SET_TEXT_MODE(IGNORECASE) or SET_TEXT_MODE(NOIGNORECASE) et avec les jeux de caractères ASCII et UTF-8.
<text>.GT(<string>) Renvoie une valeur booléenne TRUE si le préfixe est alphabétiquement supérieur à l’argument chaîne. Si le préfixe renvoie une valeur autre que la chaîne, l’argument fonction est comparé à la représentation sous forme de chaîne de la valeur renvoyée par le préfixe. Vous pouvez utiliser les fonctions avec SET_TEXT_MODE(IGNORECASE) ou,SET_TEXT_MODE(NOIGNORECASE) et avec les jeux de caractères ASCII et UTF-8.
<text>.GE(<string>) Renvoie une valeur booléenne TRUE si le préfixe est alphabétiquement supérieur ou égal à l’argument chaîne. Si le préfixe renvoie une valeur autre que la chaîne, l’argument fonction est comparé à la représentation sous forme de chaîne de la valeur renvoyée par le préfixe. Vous pouvez utiliser les fonctions avec SET_TEXT_MODE(IGNORECASE) ou,SET_TEXT_MODE(NOIGNORECASE) et avec les jeux de caractères ASCII et UTF-8.
<text>.LT(<string>) Renvoie une valeur booléenne TRUE si le préfixe est alphabétiquement inférieur à l’argument chaîne. Si le préfixe renvoie une valeur autre que la chaîne, l’argument fonction est comparé à la représentation sous forme de chaîne de la valeur renvoyée par le préfixe. Vous pouvez utiliser les fonctions avec SET_TEXT_MODE(IGNORECASE) ou,SET_TEXT_MODE(NOIGNORECASE) et avec les jeux de caractères ASCII et UTF-8.
<text>.LE(<string>) Renvoie une valeur booléenne TRUE si le préfixe est alphabétiquement inférieur ou égal à l’argument chaîne. Si le préfixe renvoie une valeur autre que la chaîne, l’argument fonction est comparé à la représentation sous forme de chaîne de la valeur renvoyée par le préfixe. Vous pouvez utiliser les fonctions avec SET_TEXT_MODE(IGNORECASE) ou,SET_TEXT_MODE(NOIGNORECASE) et avec les jeux de caractères ASCII et UTF-8.

Calculer la longueur d’une chaîne

L’<text>.LENGTHopération renvoie une valeur numérique qui est égale au nombre de caractères (pas d’octets) dans une chaîne :

<text>.LENGTH

Par exemple, vous pouvez identifier les URL de demande qui dépassent une longueur particulière. Voici une expression qui implémente cet exemple :

HTTP.REQ.URL.LENGTH < 500

Après avoir compté les caractères ou les éléments d’une chaîne, vous pouvez leur appliquer des opérations numériques. Pour de plus amples informations, consultez la section Expressions de syntaxe par défaut : Utilisation des dates, des heures et des nombres.

Considérez, ignorez et modifiez la casse du texte

Les fonctions suivantes fonctionnent sur la casse (majuscule ou minuscule) des caractères de la chaîne.

|Fonction|Description| |— |— | |<text>.SET_TEXT_MODE(IGNORECASE| NOIGNORECASE) |Cette fonction active ou désactive la sensibilité à la casse pour toutes les opérations de texte.| |<text>.TO_LOWER|Convertit la cible en minuscules pour un bloc de texte pouvant atteindre 2 kilo-octets (Ko). Renvoie UNDEF si la cible dépasse 2 Ko. Par exemple, la chaîne « abCD : » est convertie en « abcd : » .| |<text>.TO_UPPER|Convertit la cible en majuscules. Renvoie UNDEF si la cible dépasse 2 Ko. Par exemple, la chaîne « abCD : » est convertie en « ABCD : » .|

Dépouiller des caractères spécifiques d’une chaîne

Vous pouvez utiliser la fonction STRIP_CHARS (<string>) pour supprimer des caractères spécifiques du texte qui est renvoyé par un préfixe d’expression syntaxique par défaut (la chaîne d’entrée). Toutes les instances des caractères que vous spécifiez dans l’argument sont effacées de la chaîne d’entrée. Vous pouvez utiliser n’importe quelle méthode de texte sur la chaîne résultante, y compris les méthodes utilisées pour faire correspondre la chaîne avec un jeu de motifs.

Par exemple, dans l’expression CLIENT.UDP.DNS.DOMAIN.STRIP_CHARS (« .-_ »), la fonction STRIP_CHARS (<string>) supprime tous les points (.), les traits d’union (-) et les traits de soulignement (_) du nom de domaine renvoyé par le préfixe CLIENT.UDP.DNS.DOMAIN. Si le nom de domaine renvoyé est « a.dom_ai_n-name », la fonction renvoie la chaîne « adomainname ».

Dans l’exemple suivant, la chaîne résultante est comparée à un jeu de motifs appelé « listofdomains » :

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

Remarque : Vous ne pouvez pas effectuer de réécriture sur la chaîne renvoyée par la STRIP_CHARS(<string>) fonction.

Les fonctions suivantes suppriment les caractères correspondants du début et de la fin d’une entrée de chaîne donnée.

Fonction Description
<text>.STRIP_START_CHARS(s) Supprime les caractères correspondants du début de la chaîne d’entrée jusqu’à ce que le premier caractère non correspondant soit trouvé et renvoie le reste de la chaîne. Vous devez spécifier les caractères que vous souhaitez supprimer sous la forme d’une seule chaîne entre guillemets. Par exemple, si le nom d’un en-tête est TestLang et :/fr_us:is sa valeur, HTTP.RES.HEADER (« TestLang ») .STRIP_START_CHARS (« :« ) supprime les caractères spécifiés du début de la valeur de l’en-tête jusqu’à ce que le premier caractère non correspondant e soit trouvé et returnsen_us : comme un chaîne.
<text>.STRIP_END_CHARS(s) Supprime les caractères correspondants de la fin de la chaîne d’entrée au premier caractère non correspondant est trouvé et renvoie le reste de la chaîne. Vous devez spécifier les caractères que vous souhaitez supprimer sous la forme d’une seule chaîne entre guillemets. Par exemple, si le nom d’un en-tête est TestLang et que :/fr_us:est sa valeur, HTTP.RES.HEADER (« TestLang ») .STRIP_START_CHARS (« :« ) supprime les caractères spécifiés de la fin de la valeur de l’en-tête jusqu’à ce que le premier caractère non correspondant s soit trouvé et renvoie : /_en_us en tant que chaîne.

Ajouter une chaîne à une autre chaîne

Vous pouvez utiliser la fonction APPEND () pour ajouter la représentation sous forme de chaîne de l’argument à la représentation sous forme de chaîne de la valeur renvoyée par la fonction précédente. La fonction précédente peut être celle qui renvoie un nombre, non signé long, double, valeur temporelle, adresse IPv4 ou adresse IPv6. L’argument peut être une chaîne de texte, un nombre, un long non signé, un double, une valeur temporelle, une adresse IPv4 ou une adresse IPv6. La valeur de chaîne résultante est la même valeur de chaîne que celle obtenue à l’aide de l’opérateur +.