Python 使用正则表达式检查用户名
Python Checking usernames with regular expressions
我有一项任务需要帮助。任务是创建一个 python 脚本,要求用户输入所需的用户名。用户名必须如下所示:"a11aaaaa"。
所以从一个字母开始,2 个数字,5 个字母。这是用户名的外观规则,如果给定的输入不匹配,用户将能够重试,直到正确为止。
感谢您的帮助!
^\w{2}\d{2}\w{5}$
您可以使用这个方便的网站来试验正则表达式:https://regex101.com/
你可以这样做:
import re
while True:
name = input('Enter your name')
if re.match('^\w\d{2}\w{5}$', name):
break
试试这个:
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")
正如我最近从 SO 上的另一个用户那里了解到的那样,\w
包括 \d
。因此,'^\w\d{2}\w{5}$'
,正如这里一些用户所建议的,将匹配,例如,12345678
.
要解决这个问题,只需明确指定字符 class:
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='')
我有一项任务需要帮助。任务是创建一个 python 脚本,要求用户输入所需的用户名。用户名必须如下所示:"a11aaaaa"。 所以从一个字母开始,2 个数字,5 个字母。这是用户名的外观规则,如果给定的输入不匹配,用户将能够重试,直到正确为止。 感谢您的帮助!
^\w{2}\d{2}\w{5}$
您可以使用这个方便的网站来试验正则表达式:https://regex101.com/
你可以这样做:
import re
while True:
name = input('Enter your name')
if re.match('^\w\d{2}\w{5}$', name):
break
试试这个:
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")
正如我最近从 SO 上的另一个用户那里了解到的那样,\w
包括 \d
。因此,'^\w\d{2}\w{5}$'
,正如这里一些用户所建议的,将匹配,例如,12345678
.
要解决这个问题,只需明确指定字符 class:
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='')