什么是允许按Enter键退出循环的正则表达式(Python)?
允许“回车”键事件(按下回车键)作为唯一可接受输入的正则表达式是什么?我希望能够跳过“可选”的什么是允许按Enter键退出循环的正则表达式(Python)?,python,regex,Python,Regex,允许“回车”键事件(按下回车键)作为唯一可接受输入的正则表达式是什么?我希望能够跳过“可选”的input()语句(例如middleName=input(“输入中间名(可选)”)(对于没有中间名或不想输入中间名的人)),方法是按“回车”键进入所需的input()语句(例如lastName=input)(“输入姓氏:”))。空字符串regex对我不起作用,因为它不会将可接受的输入仅限于“Enter”键事件;它允许用户输入的所有字符(例如数字、特殊字符)存储在变量中(例如middleName)。如果用
input()
语句(例如middleName=input(“输入中间名(可选)”)(对于没有中间名或不想输入中间名的人))
,方法是按“回车”键进入所需的input()
语句(例如lastName=input)(“输入姓氏:”)
)。空字符串regex对我不起作用,因为它不会将可接受的输入仅限于“Enter”键事件;它允许用户输入的所有字符(例如数字、特殊字符
)存储在变量中(例如middleName)。如果用户输入非字母字符,我希望将所有非字母字符作为无效输入处理,但我允许在正则表达式中输入的字符除外(例如,撇号、连字符、空格
)
这是我的密码:
import re
print('Political Elections Voter Eligibility\n\n')
pattern1 = "^[A-Z]|^[A-Z]+'[A-Z]|^[A-Z]+-[A-Z]"
pattern2 = "^[A-Z]|^[A-Z].|^[A-Z]+'[A-Z]|^[A-Z]+-[A-Z]"
pattern3 = "^[A-Z]|^[A-Z]+'[A-Z]|^[A-Z]+-[A-Z]|^[A-Z]+ [A-Z]|^[A-Z]+ [A-Z]."
while True:
firstName = input("Enter your first name and tap or click 'Enter': ")
print('\n')
if re.search(pattern1, firstName):
break
else:
print('\n')
print('Invalid entry.')
while True:
middleName = input("Enter your middle name or middle initial and tap or click 'Enter' (Optional): ")
print('\n')
if re.search(pattern2, middleName):
break
else:
print('\n')
print('Invalid entry.')
while True:
lastName = input("Enter your last name and tap or click 'Enter': ")
print('\n')
if re.search(pattern3, lastName):
break
else:
print('\n')
print('Invalid entry.')
尽管如此:
try:
age = int(input("Enter your age and tap or click 'Enter': "))
except ValueError:
print('\n')
print('Invalid entry.')
continue
print('\n')
if 1 <= age <= 125:
if 1 <= age <= 17:
print('%s %s %s, age %s, you are not eligible to vote in political elections.' % (firstName, middleName, lastName, age))
break
if 18 <= age <= 125:
print('%s %s %s, age %s, you are eligible to vote in political elections.' % (firstName, middleName, lastName, age))
break
else:
print('Invalid entry.')
试试看:
年龄=整数(输入(“输入您的年龄并点击或单击“输入”:”)
除值错误外:
打印(“\n”)
打印('无效条目')
持续
打印(“\n”)
if 1我认为,有一个更简单的场景可以实现您的目标。如果您在middleName
的情况下修改if
语句
从
到
因此代码变成(在与middleName
相关的代码中):
Hello@Jeremy…你也可以粘贴你迄今为止使用过的代码吗…谢谢!Hello@Ice Bear…好的,你试过正则表达式吗?^
是行首分隔符,$
是行尾。该模式只匹配一个空字符串。Hello@HåkenLid…我用^来限制t中的第一个字母他把名字改成大写感谢@Nour Allah Hussein…我不得不把=0改成==0。它工作得很好!非常感谢!:-)
if re.search(pattern2, middleName):
if len(middleName)==0 or re.search(pattern2, middleName):
while True:
middleName = input("Enter your middle name or middle initial and tap or click 'Enter' (Optional): ")
print('\n')
if len(middleName)==0 or re.search(pattern2, middleName):
break
else:
print('\n')
print('Invalid entry.')