Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是允许按Enter键退出循环的正则表达式(Python)?_Python_Regex - Fatal编程技术网

什么是允许按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.')