Exemples d’utilisation des Expressions Régulières (RegExp)

Exemples d’utilisation des expressions régulières (RegExp), un outil très puissant pour comparer des chaînes de caractères.

Les explications des exemples ci-dessous sont “minimalistes”.

Voici une excellente référence pour approfondir cet outil : http://www.regular-expressions.info/

Exemple 1

Dans un code XXXXXX ###A-XXXXX, on veut récupérer ###A. On comprend que nous avons une série de lettres (quantité variable), un espace, une série de chiffres, une lettre, un tiret et une autre série de lettres.

Analysons le pattern :

\d  un chiffre (0 à 9)

+  répétition de 1 à n fois le caractère précédent (donc on cherche plusieurs chiffres)

\D un caractère qui n’est pas un chiffre

(?=\-)   “Positive Lookahead” : On recherche ensuite un tiret (-). On doit mettre le backlash car c’est un caractère réservé. Le ?= est une recherche positive vers l’avant (positive lookahead). Le tout entre parenthèse ( ) . Un “Positive Lookahead” n’est pas conservé dans la recherche s’il y a un “match”. C’est donc dire qu’on vérifie que l’on a un tiret mais on ne le garde pas. Par exemple : “ABC 1224D-XYZ” retourne 1224D alors que “ABC 1224DD-XYZ”  ne retourne aucun résultat car nous avons 2 lettres après nos chiffres.

Si on avait utilisé le pattern \d+\D[-] ou \d+\D\-, “ABC 1224D-XYZ” aurait retourné comme résultat 1224D-.

Exemple 2 – Extraire une adresse courriel

Dernièrement, j’avais besoin d’extraire une adresse courriel contenu dans le texte d’une cellule. Pour ce faire, j’ai utilisé une fonction personnalisée avec une expression régulière (RegEx) pour retourner le résultat.

Exemple :

RegEx_Email

Voici le code :

Analysons le pattern :
[a-z0-9] L’adresse courriel commence avec un caractère (lettre ou chiffre)
[a-z0-9_\.\-]+ suivie de 1 ou plusieurs caractères (lettre, chiffre ou . _ -)
@ suvi du caractère @
[a-z0-9\-\.]+ encore une fois suivi de 1 ou plusieurs caractères (lettre, chiffre ou . _ -)
(\.[a-z]{2,4})+ terminé par un ou plusieurs groupe de 2 ou 4 lettres débutant par un . (exemple .com. org .info)

Note:
Il s’agit ici d’une version simplifiée d’expression régulière permettant d’extraire une adresse courriel. Elle pourrait ne pas couvrir 100% des possiblités (mais était suffisante pour mes besoins immédiats).

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Les balises HTML ne sont pas autorisés.