Python regex

Fermé
Herve - 3 janv. 2021 à 14:51
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 3 janv. 2021 à 16:04
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

Utilisateur anonyme
3 janv. 2021 à 15:15
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
0
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
0
Utilisateur anonyme
3 janv. 2021 à 15:41
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é.
0
Herve > Utilisateur anonyme
3 janv. 2021 à 15:47
Okay merci de l’info, est ce que toi tu pourrais m’aider ?
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > Herve
3 janv. 2021 à 16:04
peux-tu marquer cette discussion comme résolue, et continuer dans l'autre?
0