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 :
la virgule qui sépare le nom de famille du prénom
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 :
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 |
| Le point d'interrogation ? représente n'importe quel caractère alphanumérique |
|
Trouver un caractère dans une plage de caractères | Pour trouver les lettres entre a et h | [premier caractère-dernier caractère] |
| [premier caractère-dernier caractère] |
|
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 |
| L'arobase @ pour au moins un caractère L'astérisque * pour 0 ou plusieurs caractères |
|
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 |
| Ne s'applique pas car on peut retrouver la fin d'un paragraphe sans passer par les expressions régulières en en cherchant | 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 |
Pour réutiliser dans le remplacer : | 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 |
Pour réutiliser dans le remplacer : |
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 suivie de l'espace.(.+)$
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!