Expressions - Les expressions régulières

Page / - dernière modification par Gilles Toubiana le 2019/07/05 09:17

Les expressions régulières

dernière modification par Gilles Toubiana

le 2019/07/05 09:17

Table des matières

Opérateurs

Quantificateurs

Classes de caractères

DANS CETTE PAGE

Opérateurs

Quantificateurs

Classes de caractères

Le moteur de recherche de Frantext permet l'utilisation d'expressions régulières – appelées également expressions rationnelles – pour rechercher des suites de caractères selon des motifs et des formules logiques. Les expressions régulières peuvent être utilisées dans les recherche avancées, de fréquences, de co-occurrences et de voisinages, ainsi que dans les listes de mots et les grammaires.

Opérateurs

Les opérateurs permettent de spécifier le type de caractères à rechercher.

Opérateur	Description	Exemple de recherche avancée	Exemple de résultats séparés par des virgules
()	Groupe de caractères d'une expression	"(nuit)"	nuit
|	Choix entre plusieurs alternatives	"jour|nuit"	jour, nuit
.	N'importe quel caractère	"n.it"	nuit, nait...
\	Interpréter littéralement un opérateur	"\."	.
[]	Un des caractères entre crochets	"[bp]eau"	beau, peau
[^]	Tout caractère hormis ceux entre crochets	"n[^u]is"	nais, nois
[a-z]	Un intervalle composé de caractères alphabétiques de a à z, en minuscules et sans diacritiques	"[a-z]ait"	fait, sait, lait...
[0-9]	Un intervalle composé de chiffres de 0 à 9	"[0-9]"	0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Pour aller plus loin, consultez la documentation dédiée à l'utilisation des caractères spéciaux dans Frantext.

Quantificateurs

Les quantificateurs permettent de spécifier le nombre de caractères à rechercher.

Quantificateur	Description	Exemple de recherche avancée	Exemple de résultats séparés par des virgules
?	Zéro ou une fois le caractère ou groupe qui précède	"nu(it)?"	nuit, nu
*	Zéro ou plusieurs fois le caractère ou groupe qui précède	"cré*e"	cre, crée, créée
+	Une ou plusieurs fois le caractère ou groupe qui précède	"cré+e"	crée, créée
{n}	Exactement n occurrences de l'expression précédant les accolades. La valeur de n est limitée à 32.	"(ha){2}"	haha
{n,n}	Exactement n occurrences de l'expression précédant les accolades. La valeur de n est limitée à 32.	"(ha){2,2}"	haha
{n,m}	Entre n et m occurrences de l'expression précédant les accolades. Les valeurs de n et m sont limitées à 32.	"(ha){2,3}"	haha, hahaha
{n,}	Au moins n occurrences de l'expression précédant les accolades. La valeur de n est limitée à 32.	"(ha){2,}"	haha, hahaha, hahahaha...

Classes de caractères

Les classes de caractères correspondent à des caractères ou des intervalles prédéfinis.

Classe	Description	Exemple de recherche avancée	Exemple de résultats séparés par des virgules
\d	Un chiffre, correspond à [0-9]	"\d"	0, 1, 2, 3, 4, 5, 6, 7, 8, 9
\D	Tout caractère hormis un chiffre, correspond à [^0-9]	"\D"	., à, -, a, ?, ;, y, :, «...
\x	Nombre hexadécimal sur 2 chiffres	"\x40"	@
\u	Nombre hexadécimal sur 4 chiffres, correspond aux caractères unicodes	"\u0040"	@
\S	Tout caractère hormis un espace, correspond à [^\t\n\f\r ]	"\S"	., à, -, a, ?, ;, y, :, «...
\w	Un caractère alphanumérique sans diacritiques, correspond à [0-9A-Za-z_]	"\w"	a, y, 2, 1, s, h, 4, 3...
\W	Tout caractère hormis un caractère alphanumérique, correspond à [^0-9A-Za-z_]	"\W"	., -, ?, ;, :, «...
:alnum:	Un caractère alphanumérique sans diacritiques, correspond à [0-9A-Za-z]	"[[:alnum:]]"	a, y, 2, 1, s, h...
:alpha:	Un caractère alphabétique sans diacritiques, correspond à [A-Za-z]	"[[:alpha:]]"	a, y, s, h, i, t...
:digit:	Un caractère numérique, correspond à [0-9]	"[[:digit:]]"	0, 1, 2, 3, 4, 5, 6, 7, 8, 9
:lower:	Un caractère alphabétique en minuscules sans diacritiques, correspond à [a-z]	"[[:lower:]]"	a, y, s, h, i, t...
:upper:	Un caractère alphabétique en majuscules sans diacritiques, correspond à [A-Z]	"[[:upper:]]"	m, a, i, p, b, c...
:word:	Un caractère alphanumérique ou un tiret bas, correspond à [0-9A-Za-z_]	"[[:word:]]"	a, y, 2, 1, s, h, 4, 3...
:xdigit:	Un nombre hexadécimal, correspond à [0-9A-Fa-f]	"[[:xdigit:]]"	a, 2, 1, 3, 4, 6 ,5...

Le moteur de recherche de Frantext (baptisé Allegro) est également capable d'exploiter des classes de caractères correspondant à des éléments invisibles, bien que ceux-ci ne puissent pas être exploités dans l'interface en ligne de Frantext du fait de la segmentation des mots.

Classe	Description
\t	Tabulation horizontale
\r	Retour chariot
\n	Saut de ligne
\f	Saut de page
\s	Un caractère d'espace, correspond à [\t\n\f\r ]
:blank:	Un caractère de tabulation, correspond à [\t ]
:space:	Un caractère d'espacement, correspond à [\t\n\f\r ]