1

我有一些文本数据的文件。我需要从这个文件中获取所有对我感兴趣的字符串。所有有趣的字符串都用“\x01\x00\x00\x00”和“\x00”框起来。我尝试使用以下正则表达式来查找这些字符串:

(\x01\x00\x00\x00[\u0000-\uFFFF]+\x00)

但它不能正常工作。我究竟做错了什么?完整代码在这里:

# -*- coding: utf-8 -*-

import re

file  = open(r"H:\1705\test.adb")
temp = file.readlines()
resString = ""
for line in temp:
    resString += line
p = re.compile(ur"(\x01\x00\x00\x00[\u0000-\uFFFF]+\x00)", re.UNICODE)
res = p.finditer(resString)
for match in res:
    print match.group()[0].decode("cp1251")
4

1 回答 1

0

在正则表达式中,反斜杠转义特殊字符以抑制其特殊含义,例如,如果您想使用正则表达式搜索点,您将使用\..

因此,要搜索反斜杠,您需要使用\\,导致您的可搜索字符串为

\\x01\\x00\\x00

等等。

于 2012-06-21T04:57:58.023 回答