Nous avons utilisé ChatGPT pour améliorer la grammaire et la syntaxe de la transcription.
Bonjour à tous ! Wow, vous êtes vraiment réveillés. Merci beaucoup d'être ici pour démystifier les expressions régulières avec moi. Je suis sûr que beaucoup d'entre vous ont déjà quelques connaissances à ce sujet. Il s'agit en fait de Regex 101, et je dois préciser que je me référerai à ces expressions sous le nom de "regex". Toutes mes excuses à ceux qui disent "regx" ou autre chose - je n'entre pas dans le débat sur la prononciation GIF/GIF ici ! Nous pourrons en discuter après ; j'ai des opinions.
Vous pouvez suivre si vous le souhaitez. Cette session a été conçue comme un atelier où les participants s'engageraient et feraient les choses au fur et à mesure. Tout est dans le repo GitHub, et je vous encourage également à ouvrir regex101.com. Je vous le montrerai dans un instant. Les diapositives sont également disponibles, donc si vous voulez les revoir plus tard, n'hésitez pas.
Quelques précisions : il n'est pas nécessaire d'être un mathématicien chevronné pour comprendre les expressions régulières. Certes, elles sont issues de la théorie mathématique, mais il n'est pas nécessaire d'être un expert en mathématiques pour les comprendre. Il s'agit plutôt d'apprendre et de pratiquer, c'est pourquoi je vous encourage à essayer par vous-même pour vraiment comprendre.
Je vais vous montrer un outil. Malheureusement, je n'ai pas le temps aujourd'hui de passer en revue tous les exemples et de vous montrer comment il fonctionne, mais je vous encourage à l'explorer par vous-même. C'est mon préféré, et le repo est structuré en conséquence, avec un README informatif, des diapositives de mon collègue Paul, qui est l'auteur original de cet exposé, et quelques exemples textuels. Il y a beaucoup de contenu, alors n'hésitez pas à vous y plonger et à le tester.
Qu'est-ce que c'est ? Oh, j'ai rencontré un effet de démonstration - c'est amusant ! Je n'ai plus accès à mes diapositives, ce qui est fantastique. Mais ne vous inquiétez pas, je suis un professionnel, n'essayez pas cela chez vous. Oh, il semble que je partage toujours mon écran, ce qui est également excellent pour la sécurité.
Je suis sûr que vous êtes impatients de connaître mon mot de passe, mais passons. Désolé, les amis. Si vous n'avez jamais vu quelqu'un s'écraser en direct, je suis là, heureux de vous rendre service.
Les expressions régulières sont issues des mathématiques. Il s'agit essentiellement d'un moyen de décrire le langage à l'aide d'équations mathématiques. Bien qu'elles soient issues du monde des mathématiques, il n'est pas nécessaire d'être mathématicien pour les comprendre. Maintenant que mon écran est redevenu normal, poursuivons.
En général, cette présentation dure 50 minutes, mais je n'en ai que 35 et j'ai déjà perdu cinq minutes. Je n'ai que 35 minutes et j'en ai déjà perdu cinq.
Un peu d'histoire : les expressions régulières ont été créées par Stephen Cole Kleene en 1951. Elles décrivent le langage, comme je l'ai mentionné, et sont essentiellement un moyen mathématique d'expliquer le langage. Cependant, ce que vous voulez vraiment savoir, c'est ce que sont exactement les expressions régulières. À la fin de cette session, vous comprendrez qu'il s'agit de séquences de caractères qui spécifient un modèle de recherche. C'est ce que nous faisons : nous créons un modèle pour rechercher dans de grandes quantités de texte les éléments spécifiques qui nous intéressent.
Il est important de noter que les expressions régulières ne sont pas un langage de programmation. Elles ne sont pas difficiles à apprendre et je vous promets que vous pouvez y arriver. J'ai un diplôme en langue anglaise, et si je peux le maîtriser, vous le pouvez aussi. Cependant, ce n'est pas non plus une solution parfaite à tous les problèmes. Parfois, l'utilisation des expressions régulières peut s'avérer plus coûteuse que d'autres méthodes, comme une simple requête SQL. C'est un outil formidable, mais vous êtes responsable de la manière dont vous l'utilisez.
Maintenant, pour le plaisir, voici la bande dessinée obligatoire pour détendre l'atmosphère. Je vous laisse un moment pour apprécier l'art.
Alors, à quoi peuvent servir les expressions régulières ? L'utilisation la plus évidente est la recherche de texte. Mais saviez-vous que vous pouviez utiliser les expressions régulières dans Google Docs et Word ? Oui, c'est possible ! Elles sont également utiles pour valider du texte, comme la validation d'un courrier électronique. Vous pouvez même les utiliser dans Excel et Google Sheets.
Maintenant que vous savez où vous pouvez l'utiliser, voyons comment l'utiliser. Il existe différents types de caractères : les caractères littéraux, les caractères spéciaux, les classes de caractères, les classes de caractères sténographiques - il y a des caractères partout ! La syntaxe est ce qui rend les choses amusantes, et nous allons passer en revue tous ces éléments, alors accrochez-vous à votre siège parce que ça va aller vite.
Les caractères littéraux sont assez simples. Si vous cherchez "foo", c'est une expression régulière valide. Vous voyez, vous le faisiez déjà sans vous en rendre compte ! Mais si vous n'avez besoin que d'une recherche textuelle de base, pourquoi utiliser des expressions régulières ? Explorons des caractères plus intéressants.
Les délimiteurs sont courants ; je suis sûr que vous les avez vus. Si vous visitez le site regex101.com, c'est l'option par défaut. Les délimiteurs indiquent au moteur où commence et où finit le motif. En PHP, par exemple, la barre oblique est la plus courante. Les moteurs ne les traitent pas tous de la même manière ; vérifiez donc toujours le moteur que vous utilisez, car cela peut avoir une incidence sur vos résultats.
Les caractères spéciaux, également appelés métacaractères, sont la principale raison de votre présence ici aujourd'hui. Ils sont au nombre de 12, ce qui n'est pas rien ! Nous les présentons ici, puis nous passons en revue chacun d'entre eux.
Tout d'abord, nous avons les ancres. Le caret (^) est une ancre qui signifie le début d'une chaîne ou d'une ligne. Par exemple, l'expression régulière "^La" recherche les lignes commençant par "La". Le signe du dollar ($) est une autre ancre, mais il signifie la fin de la ligne. Vous n'obtiendrez pas les mêmes résultats si vous ancrez au début ou à la fin, il est donc important d'en tenir compte. L'ancrage permet de rendre vos recherches plus efficaces et plus précises.
Ensuite, nous avons les classes de caractères. Le crochet ouvrant ([) définit le début d'une classe de caractères, ce qui vous permet de spécifier une plage de caractères. Par exemple, "[a-z]" permet de trouver n'importe quelle lettre minuscule. À l'intérieur d'une classe de caractères, il n'est pas nécessaire d'échapper les caractères spéciaux, à l'exception de quelques-uns d'entre eux, qui sont énumérés ici.
La négation est un autre concept : l'utilisation de la caret à l'intérieur d'une classe de caractères annule les caractères qu'elle contient. Par exemple, "[^a-z]" correspondrait à tout ce qui n'est pas une lettre minuscule.
Les classes de caractères abrégés, comme "\d" pour les chiffres, sont utiles pour simplifier vos modèles. Il existe de nombreuses classes de caractères abrégés, qui peuvent rendre vos expressions plus lisibles.
Le point (.) est un caractère de remplacement qui correspond à n'importe quel caractère, à l'exception d'un saut de ligne. Par exemple, "b.r" peut correspondre à "bar", "bir", "bur", etc. Toutefois, il convient de l'utiliser avec prudence, car il peut entraîner des correspondances involontaires.
La barre verticale (|) est utilisée pour l'alternance, ce qui signifie "ou". Par exemple, "chat|chien" correspond soit à "chat", soit à "chien". Cependant, la pipe recherche la première correspondance sur la gauche, il faut donc faire attention à l'ordre de vos expressions.
Les quantificateurs, tels que le point d'interrogation ( ?), l'astérisque (*) et le signe plus (+), vous permettent de spécifier le nombre de fois qu'un caractère ou un groupe de caractères doit apparaître. Par exemple, "fo ?" correspond à "f" suivi de zéro ou un "o". L'astérisque correspond à zéro ou plusieurs fois, et le signe plus à une ou plusieurs fois.
Enfin, nous avons le regroupement avec des parenthèses, qui vous permet de regrouper des parties de votre motif et d'appliquer des quantificateurs ou des alternances au groupe. Par exemple, "(foo|bar)" correspond à "foo" ou "bar".
En conclusion, les expressions régulières sont un outil puissant qui vous permet d'effectuer des recherches et des manipulations de texte complexes. Avec de l'entraînement, vous pourrez les maîtriser et les utiliser efficacement dans votre travail.
Je vous remercie de votre attention. J'espère que vous avez appris quelque chose d'utile aujourd'hui.