私は正規表現を学んでおり、次のことをしようとしています:
以下は、一連の英数字の形式です。4 桁、2 つのスペース、8 桁、1 つのスペース、8 桁、1 つのスペース、8 桁、1 つのスペース、8 桁、1 つのスペース、OR バーで始まります。 .
FFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF |
またはより明確に書かれています:
FFFF[space][space]FFFFFFFF[space]FFFFFFFF[space]FFFFFFFF[space]FFFFFFFF[space]|
最初に、00A3 で始まるファイル内の正しい行を見つける必要があります。次に、以下を使用して組み立てた数字グループを引き出す必要があります。
p = re.compile('00A3 ') # search for 00A3[space][space]
r = re.compile(???) # search for desired 8 digit groups
q = re.compile(\[SECTION2\])
dataString = inFile.next() # 00A3 388A63FF 00000DF1 52984731 FF989ACB
while not q.match(dataString) # look for [SECTION2] line in file. This means we passed where 00A3 would have been so it must not be here.
if p.match(dataString):
numbers = r.findall(dataString) # numbers = [388A63FF, 00000DF1, 52984731, FF989ACB]
break
dataString = inFile.next() # get next line to check
これにより、さらに処理するための番号のリストが表示されます。スペースで区切られた8桁の英数字の4つのグループのみを見つける正規表現の書き方がわかりません。私の考えでは、8 桁の英数字と前にスペース、後ろにスペースを探すことでしたが、それは問題を引き起こし、どのように見えるでしょうか?
先読みオプションと後読みオプションを調べましたが、混乱します。
特に Python では、私はまだこれに非常に慣れていないので、より良い実装に関する提案をお待ちしています。
ありがとう!