text = "azeAZE123"
compilealpha = re.compile(r'[a-z]*')
compileAlpha = re.compile(r'[A-Z]*')
compilenum = re.compile(r'[0-9]*')
checkalpha = compilealpha.findall(text)
checkAlpha = compileAlpha.findall(text)
checknum = compilenum.findall(text)
print(checkAlpha)
print(checkalpha)
print(checknum)
我不明白的是我得到了这样的输出:
['', '', '', 'AZE', '', '', '', ''] ['aze', '', '', '', '', '', '', ''] ['', '', '', '', '', '', '123', '']
有人可以向我解释发生了什么事,我做错了什么吗?
*
,0或更多匹配项。当与findall()
结合使用时,您的正则表达式也将匹配空的子字符串。
one
个或多个匹配项,请改用r'[A-Z]+'
。 由于您可能对是否有匹配项更感兴趣,而对匹配项则不那么感兴趣,因此您可以考虑使用regexp search()
函数而不是findall()
,该函数将计算为布尔值。