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 に答える