여러 줄 텍스트 블록 일치를 위한 정규식
여러 줄에 걸쳐 있는 텍스트를 일치시키면 정규식 구성이 어려울 수 있습니다. 다음 예제 텍스트를 고려하세요.
some Varying TEXT DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF [more of the above, ending with a newline] [yep, there is a variable number of lines here] (repeat the above a few hundred times)
목표는 두 가지 구성 요소, 즉 "some Varying TEXT" 부분과 빈 줄을 제외한 모든 후속 대문자 텍스트 줄을 캡처하는 것입니다.
잘못된 접근 방식:
이 문제를 해결하기 위한 몇 가지 잘못된 접근 방식 include:
해결책:
다음 정규식은 원하는 것을 올바르게 캡처합니다. 구성요소:
^(. )\n((?:\n. ) )
구성요소에 대한 분석은 다음과 같습니다.
사용법:
파이썬에서 이 정규 표현식을 사용하려면 다음 코드를 사용할 수 있습니다:
import re
pattern = re.compile(r"^(. )\n((?:\n. ) )", re.MULTILINE)
그런 다음 match() 메서드를 사용하여 문자열에서 일치하는 항목을 찾을 수 있습니다. :
match = pattern.match(text)
if match:
text1 = match.group(1)
text2 = match.group(2)
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3