python中的bytes-like对象为bytes和bytearray,re模块一样可以对它们进行正则表达式的匹配。
>>> import re
>>> a = b'abcde 12345'
>>> re.search(rb'\d+', a)
>>> re.search(rb'\w+', a)
小技巧就是,在正则表达式前面加 b 。rb连在一起,就是raw bytes的意思。
在正则表达式中,可以直接使用\x:
>>> import re
>>> re.search(rb'\x00', bytes.fromhex('000102030405'))
>>> re.search(rb'\x00{2}', bytes.fromhex('000102030405'))
>>> re.search(rb'\x00{2}', bytes.fromhex('00000102030405'))
>>> re.search(rb'\x00\x01', bytes.fromhex('00000102030405'))
how nice!
-- EOF --