string = '1f23wsedrfth 567tgyh112'
expectedChecksum = re.search( "[0-9a-f]{5}",string ).group(0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
为什么会导致错误?我认为期望的校验和应该是'1f23w'
我用{4}
尝试了下面的代码,然后就可以了
expectedChecksum = re.search( "[0-9a-f]{4}",string ).group(0)
expectedChecksum
'1f23'
在正则表达式中,检查从a到f的字符,但在字符串的第5位有一个w。这可能会导致错误。 当您尝试使用{4}时,您不会检查w,因此它不会抛出错误
只有带有数字
0-9
和字母a-f
的字符串才会与指定的regex[0-9a-f]
匹配。因此,search function
在计算与您的正则表达式不匹配的字符串时将返回一个NoneType object
,这反过来又会引发一个错误,因为Nonetype object
没有属性group
我想你想要的正则表达式是
[0-9a-z]
,除非有更复杂的组合和排序您可以使用pythex进一步测试正则表达式,以查看哪些字符串将与正则表达式匹配
相关问题 更多 >
编程相关推荐