Я сейчас пытаюсь получить строку, которая находится между 2 подстроками.В этом случае строка, которой я должен манипулировать, является блоком кода.Не уверен, что это регулярное выражение или функция поиска, но я не получаю ничего обратно, и я не должен.Мне нужно получить смещение на линии 53, но мне нужно использовать Gusset To Backplate Left Gus 1 в качестве начального маркера и ENDFOR, я думаю, может быть конечным маркером.Просто не совсем уверен, как синтаксис для чего-то подобного будет работать в python.Я попробовал некоторые из примеров, которые я видел онлайн, и до сих пор не повезло.Любая помощь будет оценена.Также я хотел бы сделать это с компиляцией, чтобы смещения могли быть доступны несколько раз.
s = '''!GUSSET TO BACKPLATE LEFT GUS 1 ;
45: E_NO(8) ;
46: FOR R[191:COUNTER B]=1 TO R[199:CHANNELS] ;
47: ;
48: CALL CHAN_BP_TO_GR ;
49: ;
50: PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]-R[197:X OFFSET MM] ;
51: --eg:THESE OFFSETS ONLY APPLY TO THIS BLOCK AND INCREASE THE AMOUNT GIVEN
: EACH LOOP ;
52: !X OFFSET ;
53: PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]+21 ;
54: !Y OFFSET ;
55: PR[GP1:2,2:OFFSET]=PR[GP1:2,2:OFFSET]+0 ;
56: !Z OFFSET ;
57: PR[GP1:2,3:OFFSET]=PR[GP1:2,3:OFFSET]+0 ;
58: ENDFOR ;'''
string1 = re.compile('!GUSSET TO BACKPLATE LEFT GUS 1 ;')
string2 = re.compile('PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]+[0-9]* ;')
string3 = re.compile('ENDFOR ;')
result = re.search(r'!GUSSET TO BACKPLATE LEFT GUS 1 ;, (PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]+[0-9]* ;),ENDFOR ;', s)
'.(PR[GP1:2,1:OFFSET]=PR[GP1:2,1:OFFSET]+[0-9]* ;'
print(result)