用于unicode字符串的正则表达式

时间:2012-05-01 17:41:51

标签: regex python-2.7

我的文件包含一些文本数据。我需要从这个文件中获取所有有趣的字符串。所有有趣的字符串都以“\ 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")

1 个答案:

答案 0 :(得分:0)

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

要搜索反斜杠,您需要使用\\,从而导致您的可搜索字符串

\\x01\\x00\\x00

等等。