python正则表达式处理b

2024-04-26 07:24:00 发布

您现在位置:Python中文网/ 问答频道 /正文

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'

Tags: inremostsearchstringstdinlinegroup
2条回答

在正则表达式中,检查从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进一步测试正则表达式,以查看哪些字符串将与正则表达式匹配

相关问题 更多 >