我正在学习正则表达式并尝试执行以下操作:
下面是一系列字母数字的格式。它以 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 = 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
这应该给我一个数字列表以供进一步处理。我只是不确定如何编写只能找到 4 组 8 个字母数字数字的正则表达式,用空格分隔。我的想法是寻找 8 个字母数字,前面有一个空格,后面有一个空格,但这会导致问题吗?看起来如何?
我研究了向前看和向后看的选项,但我感到困惑。
我对此仍然很陌生,尤其是在 Python 中,所以我愿意接受有关更好实施的建议。
谢谢!