Python에서 정규 표현식과 여러 줄 텍스트 블록 일치
Python에서 여러 줄 텍스트를 처리할 때 정규식 일치가 어려울 수 있습니다. . 예를 들어, "n"이 개행을 나타내는 다음 텍스트를 생각해 보세요.
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].
목표는 두 가지 요소를 캡처하는 것입니다:
다음 정규 표현식의 변형을 사용한 이전 시도는 실패:
re.compile(r"^>(\w+)$$(\[.$]+)^$", re.MULTILINE) re.compile(r"(^[^>]\[\w\s]+)$", re.MULTILINE|re.DOTALL)
해결책:
여러 줄 텍스트를 올바르게 일치시키려면 다음 정규식을 사용하십시오.
re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)
이것은 패턴은 다음과 일치합니다.
아래 줄:
대체 해결 방법:
대상 텍스트에 줄바꿈(n) 외에 다른 유형의 줄바꿈이 포함될 수 있는 경우 다음과 같은 보다 포괄적인 버전을 사용하세요.
re.compile(r"^(.+)(?:\n|\r\n?)((?:(?:\n|\r\n?).+)+)", re.MULTILINE)
위 내용은 Python에서 여러 줄 텍스트 블록을 정규 표현식과 일치시키는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!