Comment arrêter d'avoir peur et de tomber amoureux des expressions régulières

Au travail et dans la vie de tous les jours, nous sommes littéralement entourés de textes: livres et articles, lettres et chats, pages Web et code de programme. Pourquoi, la vie biologique elle-même est basée sur l'ADN. Et pour un travail efficace de recherche ou de modification de texte, un outil puissant a longtemps été inventé: les expressions régulières ou regex. Cependant, pour un certain nombre de raisons, tous ne les utilisent pas ou ne les traitent que lorsqu'ils sont forcés lorsque cela est absolument nécessaire. Dans cet article, je vais essayer de remédier à cette triste situation.









Afin de trouver des fonctions, de les appeler ensemble et de les forger avec une seule volonté noire.



Il existe déjà un certain nombre de bons articles sur Habré qui vous aideront à comprendre les bases:





, , .







, . , :







^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$&^()*])[a-zA-Z--0-9!@#$&^()*]{1,}$

      
      





. , . : « , ?».









, regex.





. Notepad++ (, – ).

, Ctrl+f, «Regular expression» !









Notepad++.



1.



(, ) « »











! «».

– . ( «Math Case»), . «», «», «» . , . , . , .







, , – . . , .







Le premier pas a été franchi et rien ne nous empêche d'avancer.









2. Caractères génériques



Une autre opportunité courante - c'est un joker (joker) un astérisque " * ". Il remplace n'importe quel nombre de caractères valides. L'exemple le plus courant est la recherche de fichiers.







Disons que nous voulons trouver des photos de vacances à la mer. Pour ce faire, saisissez " * .png " dans la barre de recherche et obtenez une liste de toutes les photos du dossier:









 .png
 .png
--, .png
 .png
 , -.png

      
      





Déjà bon. Que se passe-t-il si nous ajoutons le mot «mer» avant ou après l'astérisque?

mer * .png



 .png

      
      





* sea.png



--, .png

      
      





L'option suivante retournera ce dont vous avez besoin:

* sea * .png



 .png
--, .png
 , -.png

      
      





«**.png» — , – - ( «.png» - «»), .







, , , . — «.*».









3. «.*»



– « , 0 ». « ». « ».







, , , , . , : «.*» «.*»»:











215 . …











, . «|»: :

(.*|.*)











, — 213. , , , « , .» .







, , :

(|)











. , . , , . , .







, , regex-.









Saroumane comprend le pouvoir entre ses mains et n'en a pas peur. Par conséquent, il est toujours au courant de toutes les questions.



4. Nombre de répétitions ou de quantificateurs



Nous avons déjà rencontré un quantificateur - l'astérisque. Il existe plusieurs autres façons de définir le montant:

{4} montant exact
{1,5} intervalle
{2,} du nombre à l'infini
{, sept} de 0 au nombre


Certaines plages couramment utilisées ont leurs propres symboles:

* ou {0,} toute quantité
? ou {0,1} zéro ou un
+ ou {1,} il y en a au moins un


Demandons à quelle fréquence le même mot est mentionné dans un paragraphe:











2 — «(.*){2}» — 7 , — «(.*){3,}» — . «» 3 , «» «» «».









5.



( ) — . «\d», «\w», «[abc], «[1-9], «[.,?:;]».

, , :

«\d+» «\d{1,}» – :











. (37.), (. .) , 4 — \d{4}











1070 , 1421 — 351 .







.















: , , – , — . : . . «Replace»:











Vous pouvez maintenant lire un livre avec une traduction familière. Mais attention: le modèle de recherche peut correspondre non seulement au mot souhaité, mais également à un mot plus long contenant le mot souhaité. Ensuite, en remplaçant "datcha" par "village", nous pouvons obtenir de manière inattendue "village" ou "televillage". Il est conseillé d'effectuer d'abord une recherche en utilisant le même modèle et de vérifier les résultats. Compliquez le modèle pour une recherche plus précise. Dans le cas de "datcha", nous pouvons ajouter un espace avant le mot et un espace ou des signes de ponctuation à la fin: " datcha [.,!?;:] ".



Pratique d'utilisation



Pour créer, modifier ou explorer des expressions régulières, je vous recommande d'utiliser un éditeur en ligne que vous aimez. Pour moi, le plus pratique était REGEX101 :









L'anneau trouve toutes les définitions de fonction dans ISO C99 et est donc si puissant.



En haut, nous saisissons une expression régulière, et en bas, le texte que nous recherchons. L'éditeur met automatiquement en évidence les correspondances trouvées, lorsque vous survolez une partie de l'expression, des conseils expliquant la signification apparaissent et de nombreuses autres fonctions utiles. Pour remplacer, sélectionnez «Substitution» dans le panneau de gauche.



Conclusion



  • Utilisez la recherche plus souvent pour plus de commodité et accélérez votre travail.

  • Utilisez un astérisque lors de la recherche de fichiers en créant des modèles simples.
  • Commencez à utiliser des expressions régulières simples dans votre travail quotidien au fur et à mesure que vous gagnez en expérience et explorez progressivement de nouvelles fonctionnalités.


Bien sûr, cet article ne touche que le sommet. De nombreuses fonctionnalités utiles et problèmes éventuels ont été laissés sans surveillance. Mais si vous avez envie de vous plonger plus en profondeur dans le monde des regex, en plus des ouvrages de référence et des tutoriels sur Internet, vous pouvez lire les articles suivants sur Habré:





Aujourd'hui, je ne peux plus imaginer mon travail sans expressions régulières, ni sans méthode d'impression à l'aveugle. Tout ce que vous aviez à faire était de commencer à l'utiliser. C'est ce que je vous souhaite.










All Articles