Python使用正则表达式检查用户名

问题描述 投票:-2回答:4

我有一个任务,我需要一些帮助。任务是创建一个python脚本,要求用户输入所需的用户名。用户名必须如下:“a11aaaaa”。所以从一个字母开始,2x数字,5x字母。这是用户名应该如何看的规则,如果给定的输入与之不匹配,用户应该能够再次尝试直到用户正确。感谢任何帮助!

python input username evaluate
4个回答
0
投票

正如我最近从SO上的另一位用户那里了解到的那样,\w包括\d。因此,正如一些用户所建议的那样,'^\w\d{2}\w{5}$'将匹配,例如,12345678

要解决这个问题,只需明确指定字符类:

import re

regex = re.compile('^[A-Za-z]\d{2}[A-Za-z]{5}$')

while True:
    password = input('Please enter a password: ')
    if regex.search(password):
        print('Yay! Your password is valid!')
        break

    else:
        print("Oh no, that's not right. You need a letter, then two numbers, then five letters. ", end='')

0
投票
^\w{2}\d{2}\w{5}$   

您可以使用这个方便的网站来试验正则表达式:https://regex101.com/


0
投票

你可以这样做:

import re

while True:
    name = input('Enter your name')
    if re.match('^\w\d{2}\w{5}$', name):
        break

0
投票

试试这个:

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")
© www.soinside.com 2019 - 2024. All rights reserved.