Python regex
Fermé
Herve
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, j'ai créé un regex en python pour valider les numéros de téléphone français. Jusqu'ici tout est okay sauf pour un problème que je n'arrive pas à régler :
Quand je rentre +33-7-10-20-30-40 c'est bon mais si jamais j'enlève un seul des tirets et que je lance le programme le regex valide quand même le numéro de téléphone. ( +33-7-10-20-3040 par exemple). Savez vous comment remédier à cela ?
Et il y a le même problème quand je supprime un ou plusieurs espaces par exemple : +33 6 10 20 30 40 en +33 6 10 20 3040 ou +33 6 10 203040
Si vous pouviez m'aider directement plutôt que de me renvoyer sur des sites web ça serait sympa :) .
mon code :
Quand je rentre +33-7-10-20-30-40 c'est bon mais si jamais j'enlève un seul des tirets et que je lance le programme le regex valide quand même le numéro de téléphone. ( +33-7-10-20-3040 par exemple). Savez vous comment remédier à cela ?
Et il y a le même problème quand je supprime un ou plusieurs espaces par exemple : +33 6 10 20 30 40 en +33 6 10 20 3040 ou +33 6 10 203040
Si vous pouviez m'aider directement plutôt que de me renvoyer sur des sites web ça serait sympa :) .
mon code :
import re
pattern = r"^(?:(?:\+|00)33[\s.-]{0,3}(?:\(0\)[\s.-]{0,3})?|0)[6-7](?:(?:[\s.-]?\d{2}){4}|\d{2}(?:[\s.-]?\d{3}){2})$"
user_input = input()
#Réponse
if(re.search(pattern, user_input)):
print("ok")
else:
print("numéro non valide")
2 réponses
Bonjour,
Par respect envers ceux qui ont commencé à t'aider, merci de continuer la précédente discussion.
https://forums.commentcamarche.net/forum/affich-37024320-regex-numero-de-telephone-fr
Par respect envers ceux qui ont commencé à t'aider, merci de continuer la précédente discussion.
https://forums.commentcamarche.net/forum/affich-37024320-regex-numero-de-telephone-fr