hideout-lastation.com
Paradis Pour Les Concepteurs Et Les Développeurs


Guide du débutant à l'expression régulière (Regex)

Une expression régulière est un ensemble de caractères formant un motif pouvant être recherché dans une chaîne. Regex peut être utilisé pour la validation, par exemple pour valider les numéros de carte de crédit, pour la recherche, par exemple via des correspondances de texte complexes, et pour remplacer le texte correspondant par une autre chaîne. Il a également une excellente prise en charge multilingue - apprenez-le une fois et vous pouvez l'utiliser dans de nombreux langages de programmation.

J'ai vu peu de gens jeter un premier regard sur regex, et l'ignorer complètement. Je ne les blâme pas; La syntaxe de regex est complexe et fera beaucoup grincer des dents comme ces langages de ligne de commande, mais pire encore. Mais chaque nouvelle chose est effrayante et semble impossible à apprendre au début. Donc, en empruntant les mots d'Horace, je dirai ceci; Commencez, soyez audacieux et aventurez-vous à être sage .

À propos de Regex

Regex a ses racines dans les neurosciences et les mathématiques et n'a été mis en œuvre dans la programmation en 1968 par Ken Thompson dans l'éditeur de texte QED pour la recherche de texte. Maintenant, cela fait partie de nombreux langages de programmation comme Perl, Java, Python, Ruby et JavaScript.

Regardons quelques exemples sur le fonctionnement de regex.

Je vais utiliser JavaScript dans mes exemples. Maintenant, pour passer le niveau débutant, vous devez apprendre tous les caractères, les classes, les quantificateurs, les modificateurs et les méthodes utilisées dans regex. Voici un lien vers la page Expression régulière de Mozilla Developer Network où vous pouvez voir une table contenant tous ceux-là. Vous pouvez également vous référer à la feuille de cheats à la fin de ce post avec les caractères les plus utilisés.

Voyons un exemple simple avec une explication. C'est une regex.

C'est ce que l'expression régulière ci-dessus va rechercher dans une ligne, un caractère 'B' suivi d'au moins un des caractères entre (y compris) 'a' à 'z', 'A' à 'Z' et les nombres de 0 à 9.

Voici un exemple de correspondances dans une ligne en surbrillance:

Panier , ampoule, B12 vitamine, BaSO4 , N avant JC compagnie

L'expression régulière ci-dessus arrêtera la recherche à Panier et renvoie une réponse positive. C'est parce que le modificateur global ' g ' doit être spécifié si vous voulez que l'expression régulière examine toutes les correspondances possibles.

Voyons maintenant comment utiliser cette expression dans JavaScript. La méthode de test va: si trouvé, une correspondance renvoie true, sinon false .

 var input = "votre chaîne de test", regex = / B [a-zA-Z \ d] + /; if (! regex.test (input)) alerte ('Aucune correspondance trouvée'); else alert ('Une correspondance est trouvée'); 

Essayons une autre méthode: match renvoie les correspondances trouvées dans un tableau.

 var input = "votre chaîne de test", regex = / B [a-zA-Z \ d] + / g, / * J'ai ajouté le modificateur global 'g' à la regex pour obtenir toutes les correspondances * / ary = input.match (regex); if (ary === null) alert ('Aucune correspondance trouvée'); else alert ('les correspondances sont:' + ary.toString ()); 

Que diriez-vous de replace chaîne? Essayons ça avec regex maintenant.

 var input = "votre chaîne de test", regex = / B [a-zA-Z \ d] + / g; alert (input.replace (regex, "#")); 

Voici un codepen pour vous de modifier. Cliquez sur l'onglet "JavaScript" pour voir le code JS.

Des exercices

Pour les exercices, vous pouvez google "exercices regex" et essayez de les résoudre. Voici à quoi s'attendre lorsque vous tentez ces exercices, selon les niveaux de difficulté.

De base

Pour moi, être capable de valider un mot de passe est suffisant pour les débutants. Donc, validez un mot de passe de 8 à 16 caractères alphanumériques avec votre choix de caractères spéciaux autorisés.

Intermédiaire

C'est là que vous devriez vous entraîner avec plus de données du monde réel et apprendre quelques points regex supplémentaires comme lookahead, assertions lookbehind et groupes correspondants ;

  • Validez les codes PIN, les hexadécimales, les dates, l'adresse e-mail, le virgule flottante.
  • Remplacer le zéro de fin, les espaces, un ensemble de mots correspondants
  • Extraire différentes parties d'une URL

Avancée

Vous pouvez optimiser les solutions des exercices ci-dessus - l'expression rationnelle la plus optimale pour l'email a des milliers de caractères dedans - alors prenez-la aussi loin que vous vous sentez à l'aise et c'est suffisant . Vous pouvez aussi essayer:

  • Analyser du HTML ou du XML (bien que dans le monde réel, il soit déconseillé de le faire car l'utilisation d'expressions régulières pour analyser un langage non-régulier comme le HTML ne le rendra jamais infaillible.) L'analyse XML est une tâche difficile.
  • Remplacer des balises
  • Suppression des commentaires (sauf les commentaires conditionnels IE)

Outils

Les outils pour visualiser regex sont l'une des choses les plus cool pour moi. Si jamais vous rencontrez une longue expression rationnelle complexe, copiez-la simplement dans l'un de ces outils et vous pourrez voir clairement le flux. En plus de cela, il existe de nombreux outils que vous pouvez utiliser pour jouer avec le code regex. Ils présentent également des exemples et des cheatsheets avec des fonctionnalités de partage.

  • Debuggex - Il dessine un diagramme regex selon votre entrée et vous pouvez faire un partage rapide à StackOverflow à partir de là.
  • RegExr - Vous pouvez tester votre regex avec celui-ci. Il a également obtenu une référence, un cheatsheet et des exemples pour vous aider.
  • Refiddle - À l'heure actuelle, en dehors de JavaScript, vous pouvez également manipuler les versions de regex de Ruby et .NET.

Regex Cheatsheet

JetonDéfinition
[abc]Tout caractère unique a, b ou c
[^ abc]Tout caractère autre que a, b ou c
[az]Caractère entre (y compris) a à z
[^ az]Caractère sauf de a à z
[AZ]Caractère entre (inclus) A à Z
.Un seul caractère
\ sTout caractère d'espace
\ STout caractère non-espace
\réTout chiffre de 0 à 9
\RÉTout non-chiffre
\ wTout caractère de mot (lettre, nombre et trait de soulignement)
\ WTout caractère non-mot
(...)Capture tout ce qui est inclus
(a | b)Associez soit a ou b
une?Le caractère a est absent ou présent une fois
une*Le caractère a est absent ou présent plusieurs fois
un +Le caractère a est présent une ou plusieurs fois
un {3}3 occurrences de caractère a consécutivement
un {3, }3 ou plusieurs occurrences de caractère consécutivement
un {3, 6}3 à 6 occurrences de caractère consécutivement
^Début de la chaîne
$Fin de la chaîne
\ bUne limite de mot. Si un caractère est le dernier ou le dernier mot d'un mot ou si un caractère est entre un mot ou un caractère non-mot
\ BLimite non-mot

Lisez maintenant: Expressions régulières: 30 outils et ressources utiles

Gérez votre travail en ligne avec Groupiful

Gérez votre travail en ligne avec Groupiful

On dit souvent que si vous voulez que quelque chose soit fait correctement, vous devez le faire vous-même, mais il y a beaucoup d'avantages à travailler ensemble avec les autres. Cependant, la coordination et l'organisation du travail de groupe peuvent parfois être un peu compliquées . Devoir coordonner le travail de groupe, les tâches, les fichiers et les événements entre différentes plates-formes et services peut entraîner un mal de tête. L'ai

(Conseils techniques et de conception)

Comment restreindre le contenu aux utilisateurs enregistrés [WP Plugin Tutorial]

Comment restreindre le contenu aux utilisateurs enregistrés [WP Plugin Tutorial]

Ces derniers temps, la plupart des sites de publication de nouvelles et d'informations en ligne ont adopté le modèle freemium selon lequel les lecteurs qui ne sont pas membres enregistrés sont limités à un certain nombre d'articles qu'ils peuvent lire; payant, les utilisateurs enregistrés, d'autre part, ont un accès illimité aux articles.Dans ce

(Conseils techniques et de conception)