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 <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
.BEFORE_REGEX() Sélectionne le texte qui précède la chaîne correspondant à l’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#/#)
.AFTER_REGEX() Sélectionne le texte qui suit la chaîne correspondant à l’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/)
.REGEX_SELECT() Sélectionne une chaîne qui correspond à l’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" from a Via header: http.req.header("via").regex_select(re!NS-CACHE-d.d:s*d{1,3}!)
.REGEX_MATCH() Renvoie TRUE si la cible correspond à un argument contenant jusqu’à 1 499 caractères. L’expression régulière doit être au format suivant : reregular expression. 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 l’option interne (?i) 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#(a*b+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 sans distinction majuscules/minuscules 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