[英]using a regex wildcard within a specific pattern match
我的代码:
f = open("file.bin", 'rb')
s = f.read()
str1 = ''.join(re.findall( b'\x00\x00\x00\x12\x00\x00\x00(.*?)\x00\x01\x00\x00', s )[0])
我有一些二进制文件,我想从中提取信息(字符串)。 该文件中的信息/字符串看起来像“ [DELIMITER] String1 [DELIMITER] STRING2” ...在这些文件中使用的分隔符始终是不同的,但00始终相同,因此一个好的解决方法是告诉regex \\x12
和\\x01
可以是任何值。
所以我需要的是
str1 = ''.join(re.findall( b'\x00\x00\x00\x[ANYTHING]\x00\x00\x00(.*?)\x00\x[ANYTHING]\x00\x00', s )[0])
我该如何在正则表达式中执行此操作?
你可以试试
str1 = ''.join(re.findall(b'\x00\x00\x00.\x00\x00\x00(.*?)\x00.\x00\x00', s)[0], re.S)
该re.S
是需要.
绝对匹配任何字符(在这种情况下为字节),包括\\n
(aka \\x0a
)。
(请注意,对于正则表达式引擎,每个\\xnn
都是1个字符,因此您不能在此类转义符内使用任何运算符)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.