Couche sémantique présente dans le contenu : Expressions régulières

On ne peut parler de structuration de l'information dans un traitement de texte sans mentionner, à tout le moins rapidement, une autre fonctionnalité souvent méconnue, soit la possibilité de faire des recherches et des remplacements en exploitant des expressions régulières (appelées aussi expressions rationnelles). Les expressions régulières permettent de chercher des chaînes de caractères possédant certaines caractéristiques structurelles.

Il ne s'agit donc pas ici d'ajouter une couche sémantique à des contenus, mais plutôt d'exploiter certaines régularités dans un texte, qui sont habituellement des "marqueurs sémantiques", pour faire des recherches. Commençons par un exemple simple, soit la liste des noms des membres de l'équipe d'ABC courtage informationnel ci-dessous.

Exemple

Courtiers et courtières en information d'ABC courtage informationnel

Barnett, Tyqueria

Bonner, Ceyonne

Carson, Cheakina

Carter, Zeva

Drapeau, Alucia

Dubé, Victorin

Erika, Nagaoka

Etsuko, Kamoto

Frazier, Kashayla

Gaudet, Sénard

Hatsuka, Tano

Horton, Yahoska

Johnson, Darelle

Jones, Samantha

Juneau, Arthurien

Kiko, Nagashima

Laberge, Tommy

Lacoste, Edward

Laprise, Ophina

Loiselle, Laura

Love, Addrian

Mccoy, Jerilene

Meilleur, Aldélina

Nolin, Bersilinie

Ome, Naya

Pitre, Jacob

Rainville, Kevin

Rhéaume, Sophia

Ryu, Wakamatsu

Santerre, Edmilda

Savard, Kayla

Sénécal, Roméric

Suzu, Naru

Sylvain, Patrick

Tansho, Kawabata

Toshiko, Hora

Trudeau, Daphnee

Vallée, Elvani

Wakako, Nakagome

Walton, Cynda

On remarque, dans cette liste, certains éléments structurels explicites, soit :

  1. la virgule qui sépare le nom de famille du prénom

  2. le retour de ligne à la fin de chaque nom.

Ces éléments structurels peuvent être exploités dans une recherche exploitant les expressions régulières afin d'inverser l'ordre nom-prénom dans la liste (par exemple, pour avoir Cynda Walton au lieu de Walton, Cynda). Lorsque l'on maîtrise les expressions régulières, ce type de transformation se fait en un seul rechercher-remplacer!

Il est à noter que les expressions régulières ne se retrouvent pas que dans les traitements de texte. Plusieurs environnements qui permettent le traitement du texte les incorporent. Ceci dit, l'implantation des expressions régulières peut varier d'un environnement à l'autre, certains environnements les implantant en totalité et d'autres uniquement partiellement. De plus la syntaxe peut varier. Les principales expressions régulières que l'on retrouve sont les suivantes :

Principales expressions régulières

Fonction

Exemple

Writer (LibreOffice)

Word (Microsoft Office)

Syntaxe générique

Syntaxe pour l'exemple

Syntaxe générique

Syntaxe pour l'exemple

Trouver n'importe quel caractère alphanumérique (alphanumérique = lettres, chiffres, caractères spéciaux)

Pour trouver crème et crime

Le point . représente n'importe quel caractère alphanumérique

cr.me

Le point d'interrogation ? représente n'importe quel caractère alphanumérique

cr?me

Trouver un caractère dans une plage de caractères

Pour trouver les lettres entre a et h

[premier caractère-dernier caractère]

[a-h]

[premier caractère-dernier caractère]

[a-h]

Trouver un certain nombre d'instances d'un caractère alphanumérique

Pour trouver une suite d'une ou plusieurs lettres e (par exemple, trouver : e, ee, eee, ...)

Le plus + pour au moins un caractère

L'astérisque * pour 0 ou plusieurs caractères

e+ (au moins un e)

e* (aucun e ou plusieurs)

L'arobase @ pour au moins un caractère

L'astérisque * pour 0 ou plusieurs caractères

e@ (au moins un e)

e* (aucun e ou plusieurs)

Trouver un mot à la fin d'un paragraphe

Pour trouver le mot information à la fin d'un paragraphe

Le signe de dollar $ permet de retrouver un mot en fin de paragraphe

information$

Ne s'applique pas car on peut retrouver la fin d'un paragraphe sans passer par les expressions régulières en en cherchant ^p.

n.a.

Mettre en mémoire la chaîne trouvée pour pouvoir la réutiliser dans le Remplacer

Par exemple, mettre en mémoire la lettre trouvée dans une plage de caractères

La mise entre parenthèse permet de mettre en mémoire la chaîne retrouvée.

Dans le remplacer, le signe de dollar $ suivi de l'ordre de mise en mémoire (on pourrait en effet mettre plus d'une chaîne de caractères en mémoire) permet d'insérer dans le texte ce qui a été mis en mémoire

([a-h])

Pour réutiliser dans le remplacer : $1

La mise entre parenthèse permet de mettre en mémoire la chaîne retrouvée.

Dans le remplacer, la barre oblique inversée \ suivie de l'ordre de mise en mémoire (on pourrait en effet mettre plus d'une chaîne de caractères en mémoire) permet d'insérer dans le texte ce qui a été mis en mémoire

([a-h])

Pour réutiliser dans le remplacer : \1

Caractère d'échappement

Pour chercher le caractère [ sans qu'il soit interprété comme le caractère d'une expression régulière

Note : à utiliser pour tous les caractères exploités dans la syntaxe des expressions régulières (par exemple, pour [, ], (, ), *, +)

La barre oblique inversée \

\[

La barre oblique inversée \

\[

Les différents éléments présentés ci-dessus peuvent être combinés dans une même expression de recherche pour représenter la forme du contenu recherché. Reprenons notre exemple de la liste des noms. Chacune des lignes possède une forme récurrente : nom, prénom[retour de ligne] qu'il est possible de rechercher ainsi dans Writer : (.+), (.+)$

  • (.+), permet de mettre en mémoire (en raison des parenthèses) la chaîne de caractères (en raison du point qui représente un caractère et du + qui précise qu'il y en a potentiellement un certain nombre) jusqu'à la virgule.

  • (.+)$ permet de mettre en mémoire la chaîne de caractères après l'espace jusqu'à la fin du paragraphe (en raison du signe de dollar).

L'inversion se fera dans la boîte de remplacement ainsi : $2 $1 qui indique en effet à Writer de retourner premièrement le deuxième élément (soit le prénom) mis en mémoire, d'ajouter ensuite une espace typographique et finalement d'ajouter le deuxième élément mis en mémoire (soit le nom).

L'exemple utilisé demeure un exemple très simple d'utilisation des expressions régulières. Ces dernières sont très puissantes pour le traitement de données. Dans le cadre du cours, vous les explorerez un peu dans le TP Structuration dans un tableur. Ce qui a été présenté dans les notes de cours suffiront pour faire le travail. Éventuellement, si vous avez à faire des traitements de données plus avancés, il est conseillé de les approfondir. Ce sont des outils fort utiles!