Les expressions rationnelles PCRE vous permettent d'utiliser la syntaxe des expressions rationnelles de Perl tel \s pour un espace ou \S pour le contraire. Cependant, le principal bénéfice est que les consultations PCRE sont souvent plus rapides que les regexp car les implémentations PCRE sont souvent plus efficaces que les implémentations des expressions rationnelles POSIX que vous trouvez sur vos systèmes.
Vous trouverez une description de l'emploi des tables PCRE comprenant des exemples à la page de manuel pcre_table(5). Pour plus d'information sur PCRE lui-même, reportez-vous à la page http://www.pcre.org/.
Note : pour utiliser PCRE avec le serveur Postfix de Debian GNU/Linux, tout ce que vous avez à faire est d'installer le package postfix-pcre. Il n'y a pas à recompiler Postfix.
Dans de prochaines versions, Postfix disposera d'une interface permettant d'ajouter des types de tables par plug-in. Jusque là, vous devez compiler le support PCRE dans Postfix.
En premier lieu, vous devez disposer de la librairie PCRE (Perl Compatible Regular Expressions), qui peut être trouvée à l'adresse suivante :
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.
NOTE : les versions antérieures à la version 2.06 de pcre ne peuvent pas être utilisées.
Pour compiler Postfix avec le support PCRE vous devez ajouter -DHAS_PCRE et un -I pointant sur le répertoire include de PCRE, et ajouter le chemin vers la librairie PCRE à AUXLIBS, par exemple :
make -f Makefile.init makefiles \ "CCARGS=-DHAS_PCRE -I/usr/local/include" \ "AUXLIBS=-L/usr/local/lib -lpcre"
Solaris peut avoir besoin d'informations sur le chemin du run-time :
make -f Makefile.init makefiles \ "CCARGS=-DHAS_PCRE -I/usr/local/include" \ "AUXLIBS=-L/usr/local/lib -R/usr/local/lib -lpcre"
Lorsque Postfix cherche une table de correspondances pcre: ou regexp: chaque expression est appliquée à la chaîne entière en entrée. Suivant l'application, cette chaîne est nom de client, une adresse IP ou une adresse de messagerie. Ainsi, aucune recherche n'est effectuée sur le domaine parent : une adresse "utilisateur@domaine" n'est pas coupée en partie utilisateur et domaine, de même pour "utilisateur+foo".
Les tables d'expressions rationnelles telles pcre: ou regexp: ne sont pas autorisées à faire des substitutions $nombre dans les résultats de la consultation qui pourrait être sensibles du point de vue de la sécurité : courrament, cette restriction s'applique à la base de données locale des alias(5) ou aux tables de l'agent de livraison virtual(8).
traduction par Xavier Guimard - Retour au menu