如何匹配字母数字和字母数字值

时间:2014-01-27 22:25:08

标签: python regex match

我看了一眼,看到人们使用: ^ \ W \ d _ 进行字母匹配,但是,如果您先输入字母字符,然后使用数字字符,匹配不会失败。

这是我正在尝试的代码:

alpha = compile('[a-zA-Z]')
numeric = compile('[0-9]')
alphanumeric = compile('[a-zA-Z0-9]')


def alpha_test():
#Checks for alpha values
    cell = input('Enter an alpha value: ')
    alpha_valid = alpha.match(cell)
    if alpha_valid:
        print('The cell contains only alpha values.\n')
    else:
        print('Invalid. The cell contains other characters.\n')


def numeric_test():
#Checks for numeric values
    cell = input('Enter a numeric value: ')
    numeric_valid = numeric.match(cell)
    if numeric_valid:
        print('The cell contains only numeric values.\n')
    else:
        print('Invalid. The cell contains other characters.\n')


def alphanumeric_test():
#Checks for alphanumeric values
    cell = input('Enter an alphanumeric value: ')
    alphanumeric_valid = alphanumeric.match(cell)
    if alphanumeric_valid:
        print('The cell contains only alphanumeric values.\n')
    else:
        print('Invalid. The cell contains other characters.\n')


alpha_test()
numeric_test()
alphanumeric_test()

也许我对匹配功能提供了什么错误的观点? 我知道它可以用来匹配电子邮件格式并确保它们是正确的但我认为它也可以匹配字符输入。

2 个答案:

答案 0 :(得分:1)

我相信这是我的问题的答案 - Regex matches but shouldn't

应该再看一下,对不起所有人。

答案 1 :(得分:0)

你的正则表达式只匹配1个字符。要匹配更多/所有使用量词和锚点,例如^[a-zA-Z]+$