프리/포스트 앰블이 여러 번있는 메시지를 전송 중입니다. 나는 유효한 두 pre/postambles 사이에서 메시지를 추출 할 수 있기를 원한다. 내 curent 코드는 문제는 꼬리말이 손상된 경우, 그것은 첫 번째 유효한 프리앰블과 다음 유효한 꼬리말 사이의 모든 데이터를 인쇄하는 것입니다파이썬 next substring 검색
print(msgfile[msgfile.find(preamble) + len(preamble):msgfile.find(postamble, msgfile.find(preamble))])
입니다.
garbagePREAMBLEmessagePOSTcMBLEgarbage
garbagePRdAMBLEmessagePOSTAMBLEgarbage
garbagePREAMBLEmessagePOSTAMBLEgarbage
하고 유효한 사전/사후을 모두 가지고 있기 때문에 그것은
messagePOSTcMBLEgarbage
garbagePRdEAMBLEmessage
는하지만 난 정말 그것을 인쇄 할 것은 세 번째 줄의 메시지입니다 인쇄됩니다 : 예받은 텍스트 파일 것 산보. 그래서 내가 원하는 것은 substring의 다음 인스턴스를 찾아 인덱스 할 수 있다는 것이다. 이 작업을 수행하는 쉬운 방법이 있습니까?
편집 : 내 데이터가 멋진 이산 라인에있을 것으로 기대하지 않습니다. 난 그냥보고 쉬울 것, 그래서 그런 식으로 형식
이 좋은 개별 라인 잘 작동을하지만 데이터가 전혀 포맷 할 것으로 예상니까. 방금보기 쉽게하기 위해 그렇게했습니다. – tdfoster
메시지에 구조가 있습니까? 최대 길이, 제한된 문자 세트, 아무것도? –