Expression régulière: ce que cela signifie

click fraud protection

Qu'est-ce qu'une expression régulière?

Regex, ou expressions régulières, sont un balisage de correspondance de modèle qui programmeurs utiliser pour rechercher certains modèles dans le texte. Les expressions régulières peuvent rechercher à peu près n'importe quoi, selon la façon dont vous les structurez; ils sont utilisés partout par les programmeurs car ils sont inestimables pour aider les ordinateurs à trier rapidement les données et à filtrer les bêtises qui pourraient autrement provoquer des erreurs.

Les expressions régulières ont tendance à faire peur, en particulier pour les non-programmeurs. Regarde juste ça:

[a-zA-Z0-9_.+-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_.-]+

En réalité, ce n'est en fait pas si mal; celui-ci correspond aux adresses e-mail. Comme vous le verrez, les expressions peuvent être décomposées en caractères individuels, qui indiquent tous au programme ce qu'il doit rechercher.

Les expressions régulières sont presque universelles. Le même général syntaxe s'applique à toutes les langues avec seulement de légères variations ici et là. Ce guide contient des exemples de Python et de JavaScript ainsi que d'anciennes expressions régulières. Si vous travaillez avec une langue différente, ne vous inquiétez pas. Presque tout s'appliquera également à la langue de votre choix.

instagram viewer

Notions de base sur les expressions régulières

Techniquement, il n'y a pas beaucoup de choses qui ne pourraient pas être considérées comme des expressions régulières, car les chaînes de texte littérales sont vraiment simples. Si vous deviez utiliser 'abcde' comme expression régulière, le langage de programmation rechercherait cette chaîne exacte.

Le premier caractère correspondant plus dynamique à examiner est le '.' personnage. Dans ce contexte, le caractère point est un caractère générique. Si vous effectuez une recherche avec, votre programme renverra n'importe quel caractère qu'il trouvera comme correspondance.

Alors, que se passe-t-il si vous voulez rechercher un point littéral? Ce n'est pas difficile non plus. Lorsque vous souhaitez utiliser un point littéral, ajoutez une barre oblique inverse avant celui-ci, comme ceci: '\.'

Caractères barre oblique inverse

La barre oblique inverse joue cependant beaucoup plus de rôles ici. La plupart des principaux caractères regex incluent une barre oblique inverse.

Chiffres d'expressions régulières
Trouver des chiffres avec Regex en Python.

Jetez un œil à quelques exemples:

  • \d: Chiffres de 0 à 9
  • \w: lettres, chiffres et trait de soulignement « Word Characters »
  • \s: caractères d'espacement, y compris les tabulations, les sauts de ligne et les espaces normaux

Si vous utilisez la majuscule à la place de l'un d'entre eux, vous obtiendrez l'inverse. Par exemple, '\D' vous donne tout sauf des chiffres.

Des classes

le caractères de barre oblique inverse sont bons, mais ils sont toujours un peu rigides. En règle générale, vous souhaiterez faire correspondre des lettres, des chiffres ou quelques caractères spéciaux.

Classes d'expressions régulières
Utilisation de classes Regex pour rechercher des lettres en Python.

Placez les caractères que vous souhaitez faire correspondre dans une paire de crochets '[]', et votre programme correspondra à l'un d'entre eux. C'est ce qu'on appelle une classe regex.

[abcd1234]

L'exemple ci-dessus est encore inefficace. Au lieu de cela, vous pouvez utiliser un tiret pour spécifier une plage; par exemple, toutes les lettres minuscules:

[a-z]

Vous pouvez également lister des plages. L'expression ci-dessous correspond à toutes les lettres et tous les chiffres:

[a-zA-Z0-9]

Si vous comptez inclure le tiret dans votre jeu de caractères, collez-le à la fin pour éviter qu'il ne soit évalué. Cela fonctionne aussi avec d'autres caractères spéciaux.

[a-zA-Z0-9_.+-]

Comme avec les caractères de barre oblique inverse, vous pouvez également obtenir le résultat inverse ici. Placez un '^' au début de votre cours pour les exclure de vos résultats. Cela exclura les chiffres et plusieurs caractères spéciaux des résultats:

[^0-9_+.-]

Groupes

Les groupes utilisent un ensemble de parenthèses pour séparer votre expression. Ils regroupent les données, permettant à votre programme de les cibler et de les utiliser. Lorsqu'un programme supprime le ' http://' à partir d'une adresse Web, il utilise des groupes regex pour y parvenir. L'expression régulière lui permet de cibler certains critères et les groupes lui permettent de séparer les sections.

Groupes d'expressions régulières
Les groupes Regex aident à trouver des URL en JavaScript.

Les groupes vous permettent également de choisir entre un modèle ou un autre. Ils emploient un seul '|' pour agir comme "ou" dans l'expression. L'expression ci-dessous correspond à l'un de ces éléments: .com, .org, .net, .edu ou .gov.

\.(com|org|net|edu|gov)

Quantificateurs

Les quantificateurs sont exactement ce à quoi ils ressemblent. Ils indiquent à l'expression la quantité d'un caractère que vous recherchez. Voici les quantificateurs disponibles:

  • *: Zéro ou plus
  • +: Un ou plusieurs
  • ?: Zéro ou un
  • {3}: le montant entre parenthèses

Placez l'un de ces quantificateurs à la fin du caractère ou de la classe dont vous souhaitez spécifier la quantité. Cet exemple recherche des numéros de téléphone standard à sept chiffres:

\d{3}[.*-]\d{3}[.*-]\d{4}

Ancres et limites

Les expressions régulières vous permettent de rechercher des modèles en fonction de leur position dans une chaîne de texte ou autour d'un mot.

Ancres d'expressions régulières
Les ancres Regex utilisent le positionnement pour trouver une correspondance en JavaScript.

Voici vos principales options:

  • ^: Le début d'une chaîne
  • $: la fin d'une chaîne
  • \b: limite de mot (le début ou la fin d'un mot)

Si vous souhaitez rechercher uniquement les chaînes commençant par une lettre, vous pouvez essayer:

^[a-zA-Z]

Supposons que vous souhaitiez trouver uniquement le mot « it », et non les mots contenant les lettres I et T; c'est là que vous utiliseriez les limites des mots.

\b (i| I)t\b

Dernières pensées

Les expressions régulières peuvent vous éviter bien des maux de tête lors de la programmation. Imaginez que vous essayez d'écrire une logique pour accomplir l'un des exemples de cet article. Ce serait un gâchis terrible. Une fois que vous serez à l'aise avec eux, vous apprécierez probablement la puissance et la flexibilité des regex.

instagram story viewer