GNU/Linux >> Tutoriels Linux >  >> Linux

Aide-mémoire Regex / Principes de base

Regex Cheat Sheet/Basics

Les expressions régulières (regex ou regexp) sont un outil très utile pour identifier des modèles spécifiques dans n'importe quel texte, ce qui aide à extraire des informations quel que soit le format du texte.

Regex peut être utilisé pour valider les entrées, le scraping Web, la recherche de chaînes spécifiques dans les documents, la validation de la syntaxe pour les compilateurs et bien d'autres exemples.

Regex est largement utilisé dans plusieurs langages de programmation utilisant presque la même syntaxe, donc cet article prétend montrer les opérateurs regex de base.

Les sections suivantes montreront les différents opérateurs utilisés pour les regex et quelques exemples. Vous pouvez également tester vos expressions régulières avec quelques explications sur cette page.

Ancres

Personnages Utiliser
^ Indique le début de la chaîne. Il ne correspondra qu'à la chaîne qui commence par le(s) caractère(s) qui suit
$ Indique la fin de la chaîne. Cela correspondra à toute chaîne se terminant par le(s) caractère(s) avant le symbole "$"
abc Reconnaît n'importe quelle chaîne contenant la séquence de caractères "abc"

Voici quelques exemples :

Exemple Description Exemples de chaînes correspondantes
^A Reconnaît toutes les chaînes qui commencent par un A "A n pomme est dans l'arbre », « A nouveau restaurant"
end$ Reconnaît une chaîne qui se termine par la séquence de caractères "fin" "La fin ", " Faisons semblant de finir
^Bonjour tout le monde$ Correspond à la chaîne exacte "Hello world" "Bonjour tout le monde
commander Reconnaît n'importe quelle chaîne contenant le texte "commande" "Ma commande le numéro est 54"

Quantificateurs

Les quantificateurs sont utilisés pour représenter les moments où nous voulons que le caractère ou le groupe de caractères précédent apparaisse dans notre correspondance.

Personnages Utiliser
* Indique zéro ou plus
+ Indique un ou plusieurs
 ? Indique zéro ou un
x{n} Utilisé pour spécifier le nombre de fois ('n') que le caractère précédent ('x') doit apparaître
x{n, } Utilisé pour spécifier le nombre minimum de fois ('n') que le caractère précédent ('x') doit apparaître
x{n, m} Utilisé pour spécifier le nombre minimum ('n') et maximum ('m') de fois où le caractère précédent ('x') doit apparaître

Voici quelques exemples :

Exemple Description Exemples de chaînes correspondantes
bonjour !* Reconnaît n'importe quelle chaîne 'hello' suivie de zéro ou plusieurs caractères '!' "bonjour », « bonjour ! ”, bonjour !!
bonjour !+ Reconnaît n'importe quelle chaîne 'hello' suivie d'un ou plusieurs caractères '!' "bonjour ! », « bonjour !!
bonjour ! ? Correspond à n'importe quelle chaîne "hello" suivie de zéro ou d'un caractère "!" "bonjour », « bonjour !
(ha){2,4} Reconnaît n'importe quelle chaîne qui répète le groupe de caractères "ha" deux à quatre fois "haha », « hahaha », « hahahaha

Opérateur OU

Personnages Utiliser
a|b Reconnaît n'importe quelle chaîne contenant 'a' ou 'b'
[ ] Est utilisé pour représenter une liste, donc il correspond à une chaîne qui contient l'un des caractères à l'intérieur de la liste

Voici quelques exemples :

Exemple Description Exemples de chaînes correspondantes
se(a|e) Reconnaît toute chaîne contenant le texte "se" suivi d'un "a" ou d'un "e" "voir ”, “mer
a[bcd] Reconnaît n'importe quelle chaîne contenant un 'a' suivi de 'b', 'c' ou 'd' "ab ”, “ac ”, “annonce

Classes de caractères

Les opérateurs de classes de caractères vous permettent de faire correspondre des caractères à l'intérieur d'une catégorie (classe). Ces opérateurs offrent leurs négations, qui sont les mêmes que l'opérateur normal mais en majuscules.

Personnages Utiliser
\d Correspond à un seul chiffre personnage
\w Correspond à un seul mot caractère (lettres, chiffres et trait de soulignement)
\s Correspond à un seul espace blanc caractère, y compris les tabulations et les sauts de ligne
\D Correspond à un seul non-chiffre personnage
\W Correspond à un seul non-mot caractère (lettres, chiffres et trait de soulignement)
\S Correspond à un seul espace non blanc caractère, y compris les tabulations et les sauts de ligne
. Correspond à n'importe quel caractère unique

Drapeaux

Regex utilise généralement la forme /pattern/ . À la fin, nous pouvons utiliser les drapeaux suivants :

Drapeau Description
g Le mondial flag est utilisé pour rechercher toutes les correspondances individuelles à l'intérieur de la chaîne. Si elle n'est pas utilisée, l'expression reviendra après la première correspondance
m Le multiligne le drapeau permet d'utiliser ^ et $ comme le début et la fin d'une ligne, et non le début et la fin de la chaîne, qui peut contenir plusieurs lignes
je Les insensibles flag rend l'expression régulière insensible à la casse

Conclusions

Regex a beaucoup d'utilisations. Vous pouvez combiner les opérateurs simples expliqués dans cet article pour créer des recherches de modèles complexes. Un exemple est de valider une adresse e-mail, cela peut être fait avec l'expression régulière suivante :

^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$

Cet exemple correspond à une chaîne complète pour laquelle il recherche un modèle dans l'ordre suivant :

  • [\w-\.]+ :une combinaison d'un ou plusieurs caractères de mot, traits d'union ou points
  • @ :le symbole @
  • ([\w-]+\.)+  :une ou plusieurs combinaisons d'un ou plusieurs caractères de mot ou traits d'union terminés par un point (pour les domaines et sous-domaines de l'e-mail comme email.rackspace.)
  • [\w-]{2,4} :une combinaison de caractères de 2, 3 ou 4 mots ou traits d'union pour la fin de l'e-mail (com)

Tout comme cet exemple, il y en a beaucoup d'autres qui peuvent être facilement mis en œuvre à des fins différentes.


Linux
  1. Comment utiliser Tmux + Cheat Sheet

  2. Aide-mémoire des commandes IPtables

  3. Aide-mémoire de la commande Yum

  4. Aide-mémoire des commandes Linux

  5. Commandes vi de base (aide-mémoire)

Aide-mémoire des commandes Linux :avec des exemples

Aide-mémoire des commandes Git

Aide-mémoire des commandes MySQL

Aide-mémoire sur les raccourcis clavier de Kali Linux

Commandes nano de base (aide-mémoire)

Commandes vim de base (aide-mémoire)