J'ai une tâche dont j'ai besoin d'aide. La tâche consiste à créer un script Python qui demande à l'utilisateur de saisir un nom d'utilisateur souhaité. Le nom d'utilisateur doit être comme suit: "A11AAAAA". Donc, commencer par une lettre, 2x chiffres, 5x lettres. C'est la règle de la manière dont le nom d'utilisateur doit regarder et si l'entrée donnée ne correspond pas à cela, l'utilisateur doit être en mesure d'essayer à nouveau jusqu'à ce que cela soit correct. Reconnaissant pour toute aide! P>
4 Réponses :
^\w{2}\d{2}\w{5}$ You can use this handy site to experiment with regex: https://regex101.com/
Vous pouvez faire quelque chose comme ça:
import re while True: name = input('Enter your name') if re.match('^\w\d{2}\w{5}$', name): break
Essayez celui-ci:
import re uname = input("Enter your username: ") regex = re.compile(r"^[A-Za-z]{1}\d{2}[A-Za-z]{5}$") if regex.findall(uname): print ("Valid username") else: print ("Invalid username")
Essayé cela, mais je peux toujours entrer par exemple: A18AAAA1, et je reçois toujours "nom d'utilisateur valide".
J'ai édité la regex, mais elle accueille la lettre majuscule. Si vous souhaitez ignorer la lettre majuscule, changez [a-za-z] code> sur
[a-z] code>
Comme je l'ai récemment appris d'un autre utilisateur, Pour résoudre ce problème, spécifiez simplement la classe de caractères explicitement: p> \ w code> comprend em>
\ d code>. Par conséquent,
'^ \ w \ d {2} \ w {5} $' code>, comme suggéré par certains utilisateurs ici, correspondra, par exemple,
12345678 code>.
Essayez cette regex
^ \ w \ d {2} \ w {5} $ code>
S'il vous plaît voir: Pourquoi "peut-il m'aider quelqu'un?" pas une question réelle?