我正在学习正则表达式,并尝试执行以下操作:
以下是一系列字母数字的格式.它以4位数字开头,后跟2个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是一个空格,然后是8位数字,然后是单个空格,然后是OR栏.
FFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF |
或者写得更清楚:
FFFF[space][space]FFFFFFFF[space]FFFFFFFF[space]FFFFFFFF[space]FFFFFFFF[space]|
我首先需要在以00A3开头的文件中找到正确的行.然后,我需要拉出使用框架所构成的数字组:
p = pile('00A3 ') # search for 00A3[space][space]
r = pile(???) # search for desired 8 digit groups
q = pile(\[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
这应该给我一个编号列表,以供进一步处理.我只是不确定如何编写将仅找到由空格分隔的4组8个字母数字的正则表达式.我的想法是寻找8个字母数字以及前面和后面的空格,但这会引起问题吗?
我调查了前瞻性并看了后面的选项,但感到困惑.
我对此还很陌生,尤其是在Python中,因此我愿意接受有关更好实现的建议.
谢谢!