Python regex

Fermé
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 :

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

  1. Oui mais ils ne m'ont pas aidé, ils m'ont juste renvoyé sur des pages web.. Moi je cherche quelqu'un qui saurait comment faire
    1. Une discussion se base sur des échanges. Ils t'ont donné des pistes pour trouver par toi-même la solution, si tu n'as pas réussi il faut donc relancer la discussion pour dire que tu es toujours bloqué.
    2. Contributeur
      @Hervepeux-tu marquer cette discussion comme résolue, et continuer dans l'autre?