Le guide du débutant sur les expressions régulières

Avez-vous déjà essayé de trouver un motif récurrent dans un texte ? Vous avez peut-être utilisé la fonction de recherche de votre navigateur ou de votre logiciel de traitement de texte, mais lorsque vous devez trouver quelque chose de plus complexe, cela peut être comme chercher une aiguille dans une botte de foin.
Heureusement, il existe un moyen de repérer des motifs précis dans le texte, jusqu’à la lettre près. Cela s’appelle des expressions régulières (RegEx), et cela vous permet de devenir un maître de la recherche dans le texte.
À lire aussi : Comment utiliser les expressions régulières pour améliorer la productivité dans vos tâches quotidiennes
Où puis-je utiliser RegEx ?
Bien que Unix et Linux les aient rendues populaires, les expressions régulières sont disponibles dans une variété de logiciels, y compris Microsoft Word.

Les expressions régulières sont notamment utilisées dans plusieurs programmes Linux notables, y compris grep, Awk et Sed.
Par exemple, vous pourriez vouloir vérifier les appareils USB sur votre PC. En utilisant lspci, vous verrez une liste de tous les appareils, et vous devrez localiser les entrées USB par vous-même. Vous pourriez plutôt utiliser le suivant pour n’afficher que les appareils USB :
lspci|grep"USB"C’est le plus simple exemple de RegEx en action. C’est la manière la plus populaire d’utiliser les expressions régulières dans le terminal mais pas la seule. Aujourd’hui, vous pouvez trouver un support RegEx dans de nombreux types de logiciels, des éditeurs de texte aux gestionnaires de fichiers.
Recherche de motifs
Vous avez probablement utilisé le caractère *, qui agit comme un jokey pour sélectionner des fichiers ou des dossiers dans le terminal. Par exemple, pour lister tous les fichiers JPG dans un dossier, vous pourriez utiliser :
ls*.jpgL’équivalent RegEx de ce qui précède serait :
ls|grep-E"\.jpg"
Pour rechercher à la fois des fichiers jpg et png, utilisez :
ls|grep-E"(\.jpg|\.png)"Ranges
Si vous souhaitez rechercher une plage spécifique de caractères au lieu d’un motif, vous pouvez le faire en le définissant entre crochets. Si, par exemple, vous utilisez [a-z] comme motif, cela correspondrait à toute chaîne composée de lettres minuscules de l’alphabet.
Comme vous l’avez peut-être deviné, [A-Z] sélectionnerait uniquement les lettres majuscules. Pour choisir n’importe quelle plage de lettres, en majuscules et minuscules, l’expression changerait pour [a-zA-Z].
Pour localiser un nombre spécifique d’instances de votre motif, vous pouvez le déclarer entre accolades. {5} renverrait cinq occurrences de votre motif. Vous pouvez également utiliser des plages de nombres, donc {5,10} vous présenterait entre cinq et dix instances.
Métacaractères
Dans les expressions régulières, vous pouvez également rechercher des parties d’une chaîne avec deux caractères appelés métacaractères. Ils sont similaires aux correspondances jokey que vous pourriez avoir utilisées dans le shell.
Le principal est le simple point, qui représente tout autre caractère unique. Si vous utilisez le motif c.ll, il correspondrait à “cell” mais aussi “cull” et “call”.
En entrant un astérisque après un point, vous pouvez l’utiliser pour correspondre à un nombre infini de caractères. Par exemple, .*board sera une correspondance pour “keyboard” et “skateboard”, même si “key” et “skate” ont un nombre différent de lettres.
Échapper
Vous avez peut-être remarqué que dans notre exemple, où nous avons sélectionné différents types de fichiers image, nous avons utilisé des barres obliques inverses avant le point (“.jpg”). C’est ainsi que vous échappez aux caractères spéciaux dans RegEx.
Si nous ne les avions pas utilisés, notre motif ne correspondrait pas uniquement aux extensions des fichiers, des chaînes comme “.jpg” et “.png,” mais correspondrait également à “ajpg” et “opng.” Rappelez-vous, . est un jokey qui correspond à n’importe quel caractère.
Ancrages et limites
Les ancrages et les limites vous permettent de définir plus précisément ce que vous recherchez.
Pour trouver uniquement le mot individuel “ordinateur”, sans aucun autre caractère attaché avant ou après, vous devez définir le motif comme \.
Vous pouvez également rechercher spécifiquement des motifs qui apparaissent au début ou à la fin de la ligne. Cela s’obtient respectivement avec les caractères ^ et $.
Donc, si vous vouliez trouver uniquement les entrées où le mot “ordinateur” apparaissait au début d’une ligne, votre motif ressemblerait à ^ordinateur. Pour l’opposé, lorsqu’il est à la fin de la ligne, le motif changerait en ordinateur$.
Ce sont les règles simples de RegEx, que vous pouvez également mélanger pour trouver précisément les motifs que vous recherchez. Vous pouvez rechercher des plages de caractères au début d’une ligne ou des mots alternés à la fin, des dates spécifiques ou une plage d’années, en utilisant une seule chaîne de texte.
N’oubliez pas de consulter notre feuille de triche sur les expressions régulières pour maîtriser les expressions régulières.