Citrix ADC

Opérations pour les expressions régulières

Le tableau suivant décrit les opérateurs qui fonctionnent avec des expressions régulières. L’opération effectuée par un opérateur d’expression régulière dans une expression de syntaxe par défaut donnée dépend si le préfixe d’expression identifie des en-têtes de texte ou HTTP. Les opérations qui évaluent les en-têtes remplacent toutes les opérations basées sur le texte pour toutes les instances du type d’en-tête spécifié. Lorsque vous utilisez un opérateur, remplacez <text> par le préfixe d’expression de syntaxe par défaut que vous souhaitez configurer pour identifier le texte.

Opération d’expression régulière Description
<text>.BEFORE_REGEX(<regular expression>) Sélectionne le texte qui précède la chaîne correspondant à l’<regular expression> argument. Si l’expression régulière ne correspond à aucune donnée de la cible, l’expression renvoie un objet texte de longueur 0. L’expression suivante sélectionne la chaîne “text” de “text/plain”. http.res.header(“content-type”).before_regex(re#/#)
<text>.AFTER_REGEX(<regular expression>) Sélectionne le texte qui suit la chaîne correspondant à l’<regular expression> argument. Si l’expression régulière ne correspond à aucun texte de la cible, l’expression renvoie un objet texte de longueur 0. L’expression suivante extrait « Example » de « MyExample » : http.req.header (« etag ») .after_regex (re/mon/)
<text>.REGEX_SELECT(<regular expression>) Sélectionne une chaîne qui correspond à l’<regular expression> argument. Si l’expression régulière ne correspond pas à la cible, un objet texte de longueur 0 est renvoyé. L’exemple suivant extrait la chaîne « NS-CACHE-9.0 : 90 » d’un en-tête Via : http.req.header (« via ») .regex_select (re ! NS-cache-d.d:s*d {1,3} !)
<text>.REGEX_MATCH(<regular expression>) Renvoie TRUE si la cible correspond à un <regular expression> argument de 1499 caractères maximum. L’expression régulière doit être du format suivant : re <delimiter> expression régulière< delimiter> Les deux délimiteurs doivent être les mêmes. En outre, l’expression régulière doit être conforme à la syntaxe de la bibliothèque d’expressions régulières compatible PERL (PCRE). Pour plus d’informations, accédez à http://www.pcre.org/pcre.txt. En particulier, consultez la page de manuel pcrepattern. Toutefois, notez ce qui suit : Les références arrière ne sont pas autorisées. Les expressions régulières récursives ne sont pas recommandées. Le métacaractère point correspond également au caractère de nouvelle ligne. Le jeu de caractères Unicode n’est pas pris en charge. SET_TEXT_MODE (IGNORECASE) remplace le ( ? i) option interne spécifiée dans l’expression régulière. Voici des exemples : http.req.hostname.regex_match (re/[[:alpha :]] + (abc) {2,3}/) et http.req.url.set_text_mode (urlencoded) .regex_match (re# (ab+c) #) L’exemple suivant correspond à ab et AB : http.req.url.regex_match (re/a ( ? i) b/) L’exemple suivant correspond à ab, AB, Ab et AB : http.req.url.set_text_mode (ignorecase) .regex_match (re/ab/) L’exemple suivant effectue une correspondance multiligne insensible à la casse dans laquelle le méta-caractère point correspond également à un caractère de nouvelle ligne : http.req.body.regex_match (re/ ( ? ixm) (^ab (.*) cd$)/)

Opérations pour les expressions régulières