Manuel d’utilisation du logiciel libre Annuaire®

Expression rationnelle PERL 5

Il existe plusieurs dialectes d'expressions rationnelles. Il s'agit de motifs de recherche permettant des recherches poussées et précises. L'Annuaire est maintenant compatible aux expressions rationnelles PERL 5 (par la bibliothèque PCRE).

Signification des principaux caractères de recherche

^ Début de ligne sauf quand il se trouve à l'intérieur de crochets, où il signifie une négation,
$ Fin de ligne,
. (point) remplace n'importe quel caractère. Si vous voulez représenter un vrai point, il vous faudra utiliser un caractère d'échappement (\.).
(x|y|z) choix entre les cas <x> ou <y> ou <z>, x, y, z étant du texte,
| symbolise ou dans une accolade. Pour un vrai | (pipe), utiliser le caractère d'échappement \|,
X* de zéro à n occurrences de X,
X+ au moins une occurrence,
X? de zéro à une occurrence de X,
X{x, y} nombre d'occurrence de l'expression X. {x} signifie exactement x occurrences, {x,} signifie au moins x occurrences, {,y} au plus x occurrences,
\ caractère d'échappement du caractère qui le suit. Pour indiquer un antislash, il faut le doubler (\\).
[a-z] caractère compris entre le caractère <a> et le caractère <z>,
[xyz] correspond au caractère <x>, <y> ou <z>,
[^xyz] négation, correspond à tout, sauf aux caractères <x>, <y> ou <z>,
\s ou [[:space:]] ou [\t\v\f\r ] caractères d'espacement,
\d ou [[:digit:]] ou [0-9] caractères numériques (\D ó [^0-9]),
\w ou [[:word:]] ou [0-9a-zA-Z_] caractères formant des mots (\W ó [^\w]),
(?i) ne distingue plus la casse dans la suite du (sous-motif) courant. Ainsi X(a(?i)b)Y va correspondre à XabY ou XaBY,
(<un motif>), puis \1 permet de vérifier la répétition d'une correspondance trouvée. 9 correspondances possibles [de \1 à \9] pour 9 (<motif>). Les parenthèses sont importantes.
[[:alnum:]] ou [A-Za-z0-9] caractères alphanumériques,
[[:alpha:]] ou [A-Za-z] caractères alphabétiques,
[[:blank:]] ou [ \t] espaces ou tabulations,
[[:lower:]] ou [a-z] caractères en bas de casse,
[[:upper:]] ou [A-Z] caractères en majuscule,
[[:xdigit:]] ou [0-9a-fA-F] caractères hexadécimaux,
[[:punct:]] ou [!-/:-@[- {-~] caractères de ponctuation,
[[!cntrl:]] ou [\x00-\x19\x7F] caractères de contrôle,
[[!graph:]] ou [!--] caractères affichables et imprimables,
[[!print:]] ou [-~] caractères imprimables sauf caractères de contrôle.

Caractères spéciaux

\a : alarme, le caractère BEL (hex 07),
\cx : "contrôle-x", où x est n'importe quel caractère,
\e : escape (hex 1B),
\f : formfeed (hex 0C),
\n : nouvelle ligne (hex 0A),
\r : retour-chariot (hex 0D),
\t : tabulation (hex 09),
\ddd : caractère avec le code octal ddd,
\xhh : caractère with le code hexadécimal hh.

Exemple

^M\.[[!space:]]{2,}([[!digit:]]+ : texte commençant par M., puis au moins deux espaces et un nombre, comme "M. 22 coucou".

(To.o).*\1 : texte contenant to, une lettre, o, puis peut-être quelque chose avant d'être répété. Ainsi 'Toto exemple Toto2' est valide, le motif résolu est retrouvé mais pas dans 'Toto exemple Tozo'.

Dans la même idée, (.)\1 trouve ainsi tous les textes contenant deux caractères identiques consécutifs.

Voir aussi
Recherche
Recherche avancée