Trouver les numéros de téléphone avec les Regex

Trouver les numéros de téléphone avec les Regex
Dernière mise à jour le 31/05/2024
Temps de lecture : 3 minutes

Comment trouver des numéros de téléphone dans n'importe quelle cellule en se basant sur le schéma (pattern) ?

Les numéros de téléphone sont aussi important qu'un numéro de carte bleue, qu'un email, un numéro de sécurité sociale. Ils permettent d'identifier une personne de façon unique mais également de déterminer le pays d'origine à partir de leur pattern.

Le terme pattern, c'est la dénomination pour caractériser une succession de chiffres, lettres et espaces qui permettent de repérer une information dans un texte. C'est la construction de ce pattern qui va être la clé de la réussite du projet.

Caractéristique des numéros de téléphone dans le monde.

La représentation des numéros de téléphone est (pratiquement) propre à chaque pays. Il y a certes quelques exceptions mais la plus part des pays ont un pattern qui lui ai propre. Parmi les exceptions nous avons :

  • États-Unis = Canada (XXX) XXX-XXXX
  • Belgique = Allemagne XXX XX XX XX
  • Espagne = Portugal XXX XXX XXX

L'idée c'est à partir d'une liste de numéros de téléphone et de retrouver le pays d'origine et se basant sur chaque pattern.

Liste de numeros de telephone internationaux

Les Expressions Régulières (REGEX).

Les expressions régulières en informatique, représentent le moyen d'identifier dans une chaîne de caractères avec une même séquence de digits. Par exemple, pour une numéro de téléphone français, nous allons chercher

  • 4 blocs de 2 chiffres + un espace et nous terminons par un bloc de 2 chiffres
  • C'est cette séquence que nous devons traduire en regex

Les regex sont une succession de symboles qui sont déroutant au premier abord. Par exemple, le pattern pour trouver un numéro de téléphone français dans une cellule c'est (\d{2}[ .-]+){4}\d{2} 😱😱

  • Pour comprendre la signification de chaque symbole, reportez-vous à cet article 💡
  • Sinon pour pratiquer et comprendre l'impact de chaque symbole sur une chaine de caractère, vous avez le site regex101.com
  • Mais vous pouvez aussi vous appuyer sur ChatGPT ou Copilot pour vous aider dans la construction de vos regex 😉

La fonction REGEXTEST

Cette fonction va effectuer un test sur une chaîne de caractère et voir si une séquence particulière de symboles a été trouvé. Le résultat sera Vrai ou Faux.

=REGEXTEXT(Chaîne de caractères, pattern)

Prenons le cas du numéro de téléphone espagnol. Un numéro de téléphone espagnol se compose d'une série de 3 blocs de 3 chiffres (XXX XXX XXX). Traduite en expression régulière, cela donne (\d{3}[ .-]+){2}\d{3}

  • Remarque : la colonne A n'est là qu'à titre informatif pour voir que ça marche.
  • Le but de cet article c'est construire un test sur un pattern comme si la colonne A n'existait pas 😉
Regex pour trouver les numeros de telephone espagnols

Mise en forme conditionnelle

Une utilisation très pratique de cette fonction, c'est de l'utiliser comme règle personnelle de mise en forme conditionnelle.

Fonction REGEXTEST dans une regle de mise en forme conditionnelle
  • Nous pouvons par exemple créer un tableau de patterns sur les numéros de téléphones.
  • Puis remplacer le premier paramètre de la fonction REGEXTEST par une fonction RECHERCHEX.
Trouver les numeros de telephone avec leur pattern

Quelques REGEX pour trouver les pays selon le pattern du numéro de téléphone.

  • France => (\d{2}[ .-]+){4}\d{2}
  • Allemagne => \d{4}[\s.-]+(\d{2}[\s.-]+){2}\d{2}
  • Espagne => (\d{3}[ .-]+){2}\d{3}
  • Royaume-Uni => \d{5}[ .-]+\d{6}
  • Pologne => \d{2}\s+\d{3}\s+\d{2}\s+\d{2}
  • États-Unis => (?\d{3})?[-.\s]?(?\d{3})?[-.\s]??(?\d{4})?

Articles liés

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

MVP_logo_2017

Trouver les numéros de téléphone avec les Regex

Reading time: 3 minutes
Dernière mise à jour le 31/05/2024

Comment trouver des numéros de téléphone dans n'importe quelle cellule en se basant sur le schéma (pattern) ?

Les numéros de téléphone sont aussi important qu'un numéro de carte bleue, qu'un email, un numéro de sécurité sociale. Ils permettent d'identifier une personne de façon unique mais également de déterminer le pays d'origine à partir de leur pattern.

Le terme pattern, c'est la dénomination pour caractériser une succession de chiffres, lettres et espaces qui permettent de repérer une information dans un texte. C'est la construction de ce pattern qui va être la clé de la réussite du projet.

Caractéristique des numéros de téléphone dans le monde.

La représentation des numéros de téléphone est (pratiquement) propre à chaque pays. Il y a certes quelques exceptions mais la plus part des pays ont un pattern qui lui ai propre. Parmi les exceptions nous avons :

  • États-Unis = Canada (XXX) XXX-XXXX
  • Belgique = Allemagne XXX XX XX XX
  • Espagne = Portugal XXX XXX XXX

L'idée c'est à partir d'une liste de numéros de téléphone et de retrouver le pays d'origine et se basant sur chaque pattern.

Liste de numeros de telephone internationaux

Les Expressions Régulières (REGEX).

Les expressions régulières en informatique, représentent le moyen d'identifier dans une chaîne de caractères avec une même séquence de digits. Par exemple, pour une numéro de téléphone français, nous allons chercher

  • 4 blocs de 2 chiffres + un espace et nous terminons par un bloc de 2 chiffres
  • C'est cette séquence que nous devons traduire en regex

Les regex sont une succession de symboles qui sont déroutant au premier abord. Par exemple, le pattern pour trouver un numéro de téléphone français dans une cellule c'est (\d{2}[ .-]+){4}\d{2} 😱😱

  • Pour comprendre la signification de chaque symbole, reportez-vous à cet article 💡
  • Sinon pour pratiquer et comprendre l'impact de chaque symbole sur une chaine de caractère, vous avez le site regex101.com
  • Mais vous pouvez aussi vous appuyer sur ChatGPT ou Copilot pour vous aider dans la construction de vos regex 😉

La fonction REGEXTEST

Cette fonction va effectuer un test sur une chaîne de caractère et voir si une séquence particulière de symboles a été trouvé. Le résultat sera Vrai ou Faux.

=REGEXTEXT(Chaîne de caractères, pattern)

Prenons le cas du numéro de téléphone espagnol. Un numéro de téléphone espagnol se compose d'une série de 3 blocs de 3 chiffres (XXX XXX XXX). Traduite en expression régulière, cela donne (\d{3}[ .-]+){2}\d{3}

  • Remarque : la colonne A n'est là qu'à titre informatif pour voir que ça marche.
  • Le but de cet article c'est construire un test sur un pattern comme si la colonne A n'existait pas 😉
Regex pour trouver les numeros de telephone espagnols

Mise en forme conditionnelle

Une utilisation très pratique de cette fonction, c'est de l'utiliser comme règle personnelle de mise en forme conditionnelle.

Fonction REGEXTEST dans une regle de mise en forme conditionnelle
  • Nous pouvons par exemple créer un tableau de patterns sur les numéros de téléphones.
  • Puis remplacer le premier paramètre de la fonction REGEXTEST par une fonction RECHERCHEX.
Trouver les numeros de telephone avec leur pattern

Quelques REGEX pour trouver les pays selon le pattern du numéro de téléphone.

  • France => (\d{2}[ .-]+){4}\d{2}
  • Allemagne => \d{4}[\s.-]+(\d{2}[\s.-]+){2}\d{2}
  • Espagne => (\d{3}[ .-]+){2}\d{3}
  • Royaume-Uni => \d{5}[ .-]+\d{6}
  • Pologne => \d{2}\s+\d{3}\s+\d{2}\s+\d{2}
  • États-Unis => (?\d{3})?[-.\s]?(?\d{3})?[-.\s]??(?\d{4})?

Articles liés

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.