检查句子中的单词是否为字母数字和 return alnum 单词

Check if a word in a sentence is alphanumeric and return the alnum word

我一直在做一个项目,我必须检查用户输入的字符串是否为字母数字。 现在,我已经构建了我的代码,并且有一个函数需要检查任何单词是否为字母数字。 该程序是让用户输入一个句子和他的许可证号,该许可证号是字母数字形式,如“221XBCS”。因此,如果用户输入 suppose- 'My license number is 221124521' 而不是 221XBCS,我希望程序停止。 但是我当前的程序假设 re.match 条件始终为真。为什么会这样??

import re
s = input("Please enter here:")

if re.search(r'\bnumber \b',s):
            x = (s.split('number ')[1])
            y = x.split()
            z = y[0]
            print(z)
            if re.match('^[\w-]+$', z):
                print('true')
            else:
                print('False')

输出现在看起来像这样:

Please enter here:my license number is 221
is
true

我希望我的程序从输入中获取 alnum 值。就这些!

对于正则表达式,以相反的方式看问题通常很有价值。 在这种情况下,最好查看字符串是否不是纯数字,而不是查看它是否是字母数字。

        if re.match('[^\d]', z):
            print('The string is no a pure numerical')

我想我理解你的情况:用户应该输入他的许可证号码,该号码只能包含字母字符 AND 数字(两者):

内置函数:

s = input("Please enter here:")
l_numbers = list(filter(lambda w: not w.isdigit() and not w.isalpha() and w.isalnum(), s.strip().split()))
l_number = l_numbers[0] if l_numbers else ''

print(l_number)

假设用户输入了 My license number is 221XBCS thanks.
输出将是:

221XBCS