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

10 acquisitions les plus coûteuses dans l'histoire récente de la technologie

10 acquisitions les plus coûteuses dans l'histoire récente de la technologie

Il y a plusieurs raisons pour lesquelles les acquisitions technologiques ont lieu : acquérir du talent, fermer un concurrent en hausse, accéder aux brevets, à l'équipement, aux technologies, etc., et, à tout le moins, constituer un excellent fardeau pour les médias. Ces acquisitions viennent généralement avec un prix élevé, mais la vérité est que tous n'ont pas un bon retour sur investissement .Malgré la s

(Conseils techniques et de conception)

Quand est-ce que le design de marque est important?

Quand est-ce que le design de marque est important?

En tant que concepteur d'identité de marque, je me bats souvent avec cette question. En regardant des sociétés comme Apple, Dell, Google et Amazon, qui ont tous commencé avec des logos fades, sans inspiration et sans véritable identité de marque, je me retrouve souvent à réfléchir sur lequel de mes clients potentiels bénéficierait vraiment de mes services, et qui peut avoir besoin de quelques années de plus en affaires avant de pouvoir obtenir le meilleur rapport coût-efficacité de mon embauche.Aujourd'h

(Conseils techniques et de conception)