2012-05-01 226 views
1

我有一些文本數據的文件。我需要從這個文件中得到所有有趣的字符串。所有有趣的字符串都以「\ x01 \ x00 \ x00 \ x00」和「\ x00」爲框架。我嘗試使用以下正則表達式來查找這些字符串:unicode字符串的正則表達式

(\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") 
+0

如果是unicode,是哪種編碼?你爲什麼不打開文件解碼編碼?你爲什麼從'cp1251'解碼? – beerbajay

回答

0

在正則表達式的一個反斜槓特殊字符來壓抑自己的特殊含義,例如,如果你想搜索的使用正則表達式點你會使用\.

要搜索一個反斜槓,因此,你可能需要使用\\,導致你的搜索字符串是

\\x01\\x00\\x00 

等。