Regex numero de telephone FR

Fermé
Marc - 2 janv. 2021 à 14:47
 V - 3 janv. 2021 à 18:39
Bonjour j'ai créer un regex qui permettrais de reconnaitre les numéros de téléphone français qui peuvent être
-soit au format contenant 10 chiffres dont les premiers est premiers 06 ou 07
-soit un format international commençant par +33 suivie de 6 ou 7 et 8 chiffres
-les chiffres sont deux par deux séparés par un espace, - , ou rien

comme par ex :
06 10 20 30 40
0710203040
06-10-20-30-40
+33 6 10 20 30 40
+33610203040
+33-7-10-20-30-40

import re

pattern = ('((?:\+\d{2}[-.\s]?(?:\(0\)|0)*?[-.\s]?|00[-.\s]?\d{2}[-.\s]?(?:\(0\)|0)*?[-.\s]?|0)\d?[-.\s]?(?:\d{2}[-.\s]?){3,4})(?:$|\D)')

user_input = input()


#Réponse

if(re.search(pattern, user_input)):
print("ok")

else:
print("numéro non valide")


J'ai donc fais ceci mais il y a plusieurs erreurs que je n'arrive pas à corriger. Le fait qu'un des deux premiers chiffres débute par un 0 c'est ok mais comme expliqué plus tôt je voulais que le second soit 06 ou 07 (si je met 05 le programme me dit ok alors que ça devrait être invalide).
De plus lors de l'essaye avec les " - " , si j'en supprime un ça marche quand même.
Pourriez vous m'aider svp

5 réponses

yg_be Messages postés 22698 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 avril 2024 1 471
2 janv. 2021 à 14:56
bonjour,
ceci est également accepté:
+44123456

est-ce voulu?

ne devrais-tu pas commencer avec une regex plus simple, puis l'étendre?
0