Citrix ADC

Opérations pour les expressions régulières

Le tableau suivant décrit les opérateurs qui utilisent des expressions régulières. L’opération effectuée par un opérateur d’expression régulière dans une expression de stratégie avancée donnée dépend du fait que le préfixe d’expression identifie du texte ou des en-têtes HTTP. Les opérations qui évaluent les en-têtes remplacent toutes les opérations textuelles pour toutes les instances du type d’en-tête spécifié. Lorsque vous utilisez un opérateur, remplacez-le <text>par le préfixe d’expression de stratégie avancée 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, elle renvoie un objet texte de longueur 0. L’expression suivante sélectionne la chaîne « text » dans « text/plain ». http.res.header (« content-type ») .before_regex (re#/#)
<text>.AFTER_REGEX (<regular expression>) Sélectionne le texte qui suit la chaîne qui correspond à l’<regular expression>argument. Si l’expression régulière ne correspond à aucun texte de la cible, elle renvoie un objet texte de longueur 0. L’expression suivante extrait « Example » de « MyExample » : http.req.header (« etag ») .after_regex (re/my/)
<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 avoir le format suivant : re <delimiter>expression régulière< delimiter> Les deux délimiteurs doivent être identiques. En outre, l’expression régulière doit être conforme à la syntaxe de la bibliothèque d’expressions rationnelles 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 antécédentes ne sont pas autorisées. Les expressions régulières récursives ne sont pas recommandées. Le métacaractère de point correspond également au caractère de saut de 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 (code URL) .regex_match (re# (ab+c) #) L’exemple suivant correspond à ab et aB : http.req.url.regex_match (re/a (re/a (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 du point correspond également à un caractère de saut de ligne : http.req.body.regex_match (re/ (? ixm) (^ab (.*) cd$)/)
Opérations pour les expressions régulières

Dans cet article