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 la façon dont les données de vos commentaires sont traitées.

Microsoft MVP 2024

Newsletter

1 fois par mois :
Astuces et quiz

    Nous ne vous enverrons pas de spam. Vous pouvez vous désabonner à tout moment.

    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

    Newsletter

    1 fois par mois :
    Astuces et quiz

      Nous ne vous enverrons pas de spam. Vous pouvez vous désabonner à tout moment.

      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 la façon dont les données de vos commentaires sont traitées.