13 Syntaxe des expressions régulières

L'expression des chaines de caractères dans les requêtes CQL suit la syntaxe des expressions régulières PCRE (Perl-Compatible Regular Expressions). La syntaxe complète est décrite à la section « Specification of the regular expressions supported by PCRE » du manuel de PCRE : http://regexkit.sourceforge.net/Documentation/pcre/pcrepattern.html.

Voici un résumé en français des opérateurs les plus courants.

 

.

matche n'importe quel caractère

\

neutralise l'opérateur situé à droite

|

alternance

()

regroupement

[…]

classe de caractères entre crochets (eg « [aeiouy] » pour une voyelle, ou « [a-z] » pour n'importe quelle minuscule)

[^…]

ensemble complémentaire de la classe de caractères entre crochets, le caractère ^ joue le rôle de négation (eg « [^aeiouy] » pour un caractère qui n'est pas une voyelle)

Tableau 4: Méta-caractères (ou Opérateurs)

?

matche 0 ou 1 fois l'expression située à gauche

*

matche 0 fois ou plus

+

matche 1 fois ou plus

{n}

matche n fois

{n,}

matche au moins n fois

{n,m}

matche entre n et m fois

Tableau 5: Quantifieurs

\x{CC}

caractère de valeur CC (exprimée en hexadécimal) (eg « \x{E9} »pour « é »)

\xCC

caractère de valeur CC (exprimée en hexadécimal)

Tableau 6: Codes de caractères

\d

un chiffre

\D

pas un chiffre

\w

un caractère de « mot »

\W

pas un caractère de « mot »

\s

un caractère d'espace

\S

pas un caractère d'espace

\p{Classe}

un caractère de la classe Unicode « Classe » (eg « \p{Lu} » pour un caractère majuscule)

\P{Classe}

pas un caractère de la classe Unicode « Classe »

[[:ClassePOSIX:]]

un caractère de la classe « ClassePOSIX » (eg « [[:upper:]] » pour un caractère majuscule)

Tableau 7: Classes de caractères

 

\p{L}

lettre

\p{Ll}

caractère minuscule

\p{Lu}

caractère majuscule

\p{N}

caractère numérique

\p{Xan}

caractère alphanumérique

\p{Pd}

caractère de tiret (eg « - », « — »…)

\p{P}

caractère de ponctuation (eg « , », « . »…)

\p{Ps}

caractère de ponctuation ouvrante (eg « ( »)

\p{Pe}

caractère de ponctuation fermante (eg « ) »)

\p{Sm}

caractère de symbole mathématique (eg « ~ »)

\p{Cyrillic}

caractère en alphabet russe

\p{Arabic}

caractère en alphabet arabe

\p{Greek}

caractère en alphabet grec

Tableau 8: Classes Unicode courantes57

alpha

caractère alphabétique (usage : ”[[:alpha:]]”)

alnum

caractère alphanumérique

ascii

caractère du code ASCII

digit

chiffre décimal

graph

caractère imprimable, sans l'espace

lower

caractère minuscule

print

caractère imprimable, incluant l'espace

punct

caractère de ponctuation

space

caractère d'espace

upper

caractère majuscule

word

caractère de mot

xdigit

chiffre hexadécimal

Tableau 9: Classes POSIX courantes (système plus ancien et plus grossier que les classes Unicode)

Références de caractères mémorisés

Exemples :

 


57  Toutes les classes Unicode sont décrites à la section « Unicode character properties » du manuel de PCRE.