두 문자열 사이의 최단 일치 항목 추출
대용량 로그 파일을 처리할 때 두 문자열 사이의 특정 데이터를 추출하는 것이 어려울 수 있습니다. 파일 전체에서 시작 및 끝 문자열이 여러 번 발생하고 원하는 출력에 가장 짧은 일치 항목이 포함되면 작업이 더 복잡해집니다.
정규식 솔루션
이 문제를 해결하려면 , 정규식 접근 방식을 사용할 수 있습니다. 이상적인 정규 표현식은 시작 문자열과 끝 문자열 사이의 텍스트를 캡처하고 가장 짧은 일치 항목의 우선 순위를 지정합니다.
제공된 정규 표현식(start((?!start).)*?end)는 다음 기준을 충족합니다.
Python을 사용한 구현
Python에서 re 모듈은 다음을 제공합니다. 이 정규식을 적용하는 데 필요한 기능입니다. 아래 코드는 re.findall을 사용하여 가장 짧은 일치 항목을 추출하는 방법을 보여줍니다.
<code class="python">import re text = "start spam\nstart rubbish\nstart wait for it...\n profit!\nhere end\nstart garbage\nstart second match\nwin. end" matches = re.findall('(start((?!start).)*?end)', text, re.S) for match in matches: print(match)</code>
출력:
start wait for it... profit! here end start second match win. end
대형 파일에 대한 추가 고려 사항
매우 큰 파일(예: 2GB)의 경우 효율성이 중요합니다. 다음 최적화를 적용할 수 있습니다.
위 내용은 Regex를 사용하여 Python에서 두 문자열 사이의 최단 일치 항목을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!