我正在尝试匹配二进制文件中的某些字符串,并且字符串似乎已被填充。例如,单词PROGRAM可以是这样的二进制文件:
%$##@P^&#!)00000R{]]]////O.......G"""""R;;$#!*%&#*A/////847M
在该示例中,单词PROGRAM
在那里,但是它被拆分并且位于随机数据之间,因此我试图使用正则表达式来查找它。
目前,这是我想出的,但我认为这不是很有效:
(?<=P)(.*?)(?=R)(.*?)(?=O)(.*?)(?=G)(.*?)(?=R)(.*?)(?=A)(.*?)(?=M)
答案 0 :(得分:2)
如果要从字符串中获取PROGRAM,一种选择可能是将re.sub与否定的字符类一起使用,以删除所有不需要的内容。
[^A-Z]+
例如:
import re
test_str = "%$##@P^&#!)00000R{]]]////O.......G\"\"\"\"\"R;;$#!*%&#*A/////847M"
pattern = r'[^A-Z]+'
print(re.sub(pattern, '', test_str))
结果
程序
答案 1 :(得分:1)
答案 2 :(得分:0)