我有一个二进制文件。从这个文件中,我需要使用python正则表达式提取一些数据块。
我需要提取空字符集之间的非空字符集。
例如,这是主要字符集:
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xfe\xfe\x00\x00\x23\x41\x00\x00\x00\x00\x00\x00\x00\x00\x41\x49\x57\x00\x00\x00\x00\x32\x41\x49\x57\x00\x00\x00\x00\x32\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x56\x65\x00\x35\x56
正则表达式应从上面的主集中提取以下字符集:
\xff\xfe\xfe\x00\x00\x23\x41, \x41\x49\x57\x00\x00\x00\x00\x32\x41\x49\x57\x00\x00\x00\x00\x32 and \x56\x65\x00\x35\x56
有一点很重要,如果它连续获得5个以上的空字节,那么只有它才应该将这些空字符集作为分隔符来处理。否则,它应该将这个空字节包含到no null字符中。正如您在给定的示例中看到的,在提取的字符集中也存在一些空字符。
如果没有任何意义,请让我知道,我会尽量解释的更好的方式。
提前谢谢你
可以将split和lstrip与list comprehension一起使用,如下所示:
输出:
^{pr2}$下面是如何用Python实现它。我必须
str.strip()
关闭并使用前导和尾随的null来获得regex模式,以防止在re.split()
返回的结果列表的开头包含额外的空字符串。在输出:
^{pr2}$您可以在
\x00{5,}
这是5个或更多的零。这是你指定的分离机。在
在Perl中,它是这样的
Perl测试用例
输出>>
^{pr2}$相关问题 更多 >
编程相关推荐