У меня есть блок кода для поиска определенного блока адреса и определенного форматирования результатов.
Например, у меня есть строка ввода "70D76320 BEG 701D135D 702D72FC END EAR0 00000000 0000000".Мне нужно извлечь адреса между «BEG» и «END», которые в данном случае являются «701D135D» и «702D72FC», и отформатировать их следующим образом:
[0]0x701D135D
[1]0x702D72FC
Я написал скрипт для этой цели:
import re
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--address', help='Parse the input addresses')
args = parser.parse_args()
addressInfo = args.address
filter = re.compile(r'(BEG )((\w{8})\s)+(END )')
btInfo = filter.search(addressInfo)
print ("\n")
addresses = btInfo.group().split()
for idx in range(len(addresses)):
if((addresses[idx] != 'BEG') and (addresses[idx] != 'END')):
print ("[%d]0x%s" %(idx-1, addresses[idx]))
Когда я проверяю код, он больше похож на код на c / c ++, чем на python.Есть ли лучший способ достичь того же результата в «настоящем стиле питона»?