Tous les articles

Comment extraire des numéros de téléphone d'un texte, d'une page web ou d'un CSV

··2 min de lecture

Pour extraire des numéros de téléphone d'un texte, utilisez un outil qui vérifie chaque suite de chiffres par rapport au plan de numérotation du pays, pas une simple regex. Collez votre texte, votre HTML ou votre CSV dans l'extracteur de numéros de téléphone et choisissez le pays par défaut : vous obtenez chaque numéro une seule fois, au format E.164, sans les dates, les prix et les numéros de commande. Il fonctionne dans votre navigateur, donc le texte n'est pas envoyé.

Extraire des numéros de téléphone d'un texte →

Les extraire avec l'outil

  1. Ouvrez l'extracteur de numéros de téléphone.
  2. Choisissez le pays par défaut : celui auquel appartiennent la plupart des numéros locaux du texte.
  3. Collez le texte, ou importez un fichier CSV, TSV ou TXT. Les signatures d'email, le code source des pages et les exports de tableur fonctionnent tous.
  4. Cliquez sur Extract numbers (extraire les numéros). Chaque numéro est converti au format E.164 et compté une seule fois, quelle que soit la façon dont il était écrit.
  5. Téléchargez le CSV ou copiez la liste dans votre CRM ou votre composeur.

Le faire à la main en Python

Nous avons utilisé un fichier de test de trois lignes :

Call Dana on (212) 555-0147 or her cell 212.555.0199.
Invoice 2024-10-15, total $1,234.56, order #48213377.
London office: +44 20 7946 0958. Fax 555-1234.

Une regex attrape la date et coupe la parenthèse :

grep -oE '\+?[0-9][0-9 ().-]{7,}[0-9]' notes.txt
# 212) 555-0147
# 212.555.0199
# 2024-10-15
# +44 20 7946 0958

libphonenumber de Google a une fonction findNumbers faite exactement pour cela, et son portage Python s'appelle phonenumbers (pip install phonenumbers ; nous avons utilisé la version 9.0.43 le 8 novembre 2026) :

import sys, phonenumbers

text = open(sys.argv[1]).read()
seen = set()
for m in phonenumbers.PhoneNumberMatcher(text, "US"):
    e164 = phonenumbers.format_number(m.number, phonenumbers.PhoneNumberFormat.E164)
    if e164 not in seen:
        seen.add(e164)
        print(e164, m.raw_string)
+12125550147 (212) 555-0147
+12125550199 212.555.0199
+442079460958 +44 20 7946 0958

La date, le prix et le numéro de commande sont ignorés, tout comme 555-1234 : sept chiffres ne forment pas un numéro américain complet.

Ce que l'extracteur ne fera pas

  • Deviner. Un numéro auquel il manque un chiffre ou qui a une faute dans l'indicatif régional est ignoré. Vérifiez-le dans le validateur de numéros de téléphone pour savoir pourquoi.
  • Lire des images. Les PDF scannés et les captures d'écran doivent d'abord être convertis en texte.
  • Prouver qu'une ligne est active. Un format valide ne dit rien sur la mise en service de la ligne. Voir la recherche d'opérateur téléphonique.

Étape suivante : les emails du même texte

Un texte qui contient des numéros de téléphone contient généralement aussi des adresses email. Importez-les sur /verify pour vérifier chaque boîte sans rien envoyer. Les 100 premières vérifications sont gratuites avec une connexion Google, sans carte.

Pro, 39 $ par mois : vérification d'emails illimitée.* Jamais décomptée, jamais coupée. Les recherches de téléphone en direct sont une option à part, avec un quota mensuel. Voir les tarifs.

*Usage raisonnable : les 100 000 premières vérifications du mois à pleine vitesse, puis plus lentement, jamais coupées.

À lire aussi : le format de numéro de téléphone E.164, nettoyer des numéros de téléphone dans un CSV.

Questions fréquentes

Comment extraire des numéros de téléphone d'un texte ?

Collez le texte dans l'extracteur de numéros de téléphone, choisissez le pays auquel appartiennent la plupart des numéros locaux, et cliquez sur Extract numbers. Vous obtenez chaque numéro une seule fois au format E.164, avec un téléchargement CSV.

Pourquoi ne pas simplement utiliser une regex ?

Un motif de chiffres attrape aussi les dates, les prix et les identifiants de commande, et coupe aux parenthèses. libphonenumber vérifie chaque correspondance par rapport au plan de numérotation du pays.

Peut-il lire des numéros d'autres pays dans le même texte ?

Les numéros écrits avec un indicatif + sont lus correctement. Les numéros locaux sans indicatif sont lus comme appartenant au pays par défaut, donc traitez un texte mixte une fois par pays.

Vérifie-t-il que les numéros fonctionnent ?

Non. Il vérifie uniquement le format et le plan de numérotation. Utilisez un validateur de téléphone ou une recherche en direct pour vérifier le type de ligne et l'opérateur.

Vérifiez vos e-mails pour 39,00 USD/mois, sans coupure

Vérification SMTP réelle de la boîte aux lettres. Sans crédits ni frais par e-mail.

Commencer

Lire l’article original en anglais