Les expressions régulières

Les expressions régulières (ou expression rationnelle) sont un moyen pratique de nettoyer un texte de données superflues. Il s’agit de formule qui vont saisir des segments de textes, des motifs, qu’il va être possible de modifier, un système de type rechercher et remplacer en plus complexifiable…

Par exemple :

<?xml version="1.0" encoding="UTF-8"?><monthEntity issue="GDL" year="1914" month="02"><name>A propos de François Coillard</name><publication>GDL</publication><issue_date>01/02/1914</issue_date>A propos de François Coillard Lausanne, le 1 février M. Edouard Favre a donc publié le troisième et dernier volume de son François Coillard.

Pour enlever les balises de code comme

<name>A propos de François Coillard</name><publication>GDL</publication><issue_date>01/02/1914</issue_date>

pour n’avoir plus que

A propos de François Coillard, GDL, 01/02/1914

on va pouvoir utiliser des expressions régulières1. Si l’on imagine qu’un corpus comporte des centaines de fois le même type de balise que l’on souhaite simplifier, la technique prend tout son sens.

Il existe plusieurs type d’expression régulièrement dépendamment du logiciel utilisé. De façon générale, on va pouvoir chercher des chaînes de caractères :

  • expression régulière : chat
  • trouvera chat dans le texte. Exemple : le petit chat est roux
  • les mots en gras correspondent à ce qui va être sélectionné.

  • expression régulière : ar
  • trouvera tout les ar dans le texte. Exemple : l’arbre sera marron
  • expression régulière : meme
  • trouvera tout les meme dans le texte, et pas moins. Exemple : C’est le même meme que mes memes

Il y aussi les symboles permettant de définir la position des mots dans le texte :

  • expression régulière : ^
  • trouvera toutes les chaînes de caractère en début de ligne. Exemple : si on cherche pour ^22, trouvera :
    22 elle est ici, mais travaille t’elle
    22 elle mange 22
    la jeune fille travaille, 22 elle
  • expression régulière : $
  • trouvera toutes les chaînes de caractère en début de ligne. Exemple : si on cherche pour elle$, trouvera :
    elle est ici, mais travaille t’elle
    elle mange
    la jeune fille travaille, elle
  • Expression régulière : . (un point)
  • permettra de sélectionner n’importe quel caractère. Exemple : m.r, trouvera : mer, mort, mare, amer
  • Expression régulière : \d
  • permettra de sélectionner n’importe quel chiffre. Exemple : \d\d, trouvera : 45 32 45 mais pas 4em (car avec deux fois \d on implique une chaine de deux nombres à la suite)
  • Expression régulière : \w
  • permettra de sélectionner n’importe quel chiffre ou lettre. Exemple : \w\w, trouvera : 45 3e 4a le la

Après ces quelques exemples dans les grandes lignes, vous trouverez de nombreuses expressions suplémentaires, sur le site expreg.com, ou sur le codepen de Jake Albaugh spécialement pour sublime text.

Nous allons faire quelques exercices avec SublimeText, pour commencer, il va falloir installer SublimeText, une interface pour coder qui vous permettra de travailler facilement sur votre corpus. Nous utilisons SublimeText car ce programme est utilisable sur mac / windows / linux.

Une fois le logiciel installé, l’outil important se trouve en maintenant cmd + alt + F. Un onglet s’ouvre. Dans “Find What” il faut entrer les expressions régulières, dans “Replace With” ce qu’on souhaite mettre à la place des morceaux de texte sélectionnés. Vérifier que les symboles “Case Sensitive” (1) – Sensible à la casse (la casse signifie si une lettre est en minuscule ou en majuscule) et “Regular Expression” (2) sont bien sélectionnés.

Image de sublime text reliée à l'exemple

Pour retirer un nom d’utilisateur twitter
dans votre texte : @Utilisateur
dans “Find What :” @\w*
dans “Replace With :” laisser vide effacera tous les noms d’utilisateur

Pour retirer un hashtag
dans votre texte : #Hashtag
dans “Find What :” #\w*
dans “Replace With :” laisser vide effacera tous les hashtags

Pour réduire des dates
dans votre texte : 22/07/15
dans “Find What :” (\d*)(/)(\d*)(/)(\d*)
dans “Replace With :” $1$3$5 (le $1 sélectionne ce qui se trouve dans la première parenthèse et le conserve, le $2 correspondant à la seconde parenthèse n’est pas sélectionné et ne sera pas remplacé)
Donnera : 220715

BONUS | Des jeux sur les expressions régulières (merci à Aris Xanthos pour ce lien!) :

TUTORIEL EN LIGNE :
Sur Openclassroom

  1. Si vous utilisez Voyant Tools, par exemple, enlever les balises XML comme dans cet exemple n’a pas de sens. Si vous utilisez, en revanche, IRaMuTeQ, alors les balises XML sont superflues et doivent être remplacées par des variables étoilées. []

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.