>  기사  >  백엔드 개발  >  여러 줄의 텍스트 블록을 Python 정규 표현식과 일치시키는 방법: 소문자 및 대문자 구성 요소 캡처?

여러 줄의 텍스트 블록을 Python 정규 표현식과 일치시키는 방법: 소문자 및 대문자 구성 요소 캡처?

DDD
DDD원래의
2024-10-25 09:56:28414검색

How to Match Multiline Text Blocks with Python Regular Expressions: Capturing Lowercase and Uppercase Components?

Python 정규 표현식과 여러 줄 텍스트 블록 일치

이 프로그래밍 질문에서는 여러 줄에 걸쳐 있는 특정 텍스트 형식을 일치시키는 것을 목표로 합니다. . 입력 텍스트는 소문자와 대문자 텍스트의 교대 블록으로 구성됩니다. 여기서 소문자 텍스트는 기본 구성 요소를 나타내고 대문자 텍스트는 아미노산 시퀀스를 나타냅니다.

문제 설명

이 작업은 입력 텍스트에서 두 가지 구성 요소를 캡처할 수 있는 Python에서 정규식을 만드는 것입니다.

  1. 기본 소문자 구성 요소
  2. 두 개의 대문자 줄 시퀀스 그 아래 줄

출력은 그룹(1)의 기본 소문자 구성 요소와 그룹(2)의 대문자 시퀀스를 사용하여 두 개의 캡처 그룹으로 나누어야 합니다.

해결책

이 문제를 해결하려면 다음 정규식을 활용할 수 있습니다.

re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)

이 정규식은 여러 줄 모드에서 작동합니다. 즉, ^ 및 $ 앵커는 각각 줄의 시작과 끝.

설명

  • ^(. )$: 자체적으로 기본 소문자 구성 요소와 일치합니다. line.
  • n((?:n. ) ): 기본 구성 요소 뒤에 오는 대문자 텍스트의 연속 행과 일치합니다.

    • n: 줄 바꿈 문자와 일치합니다.
    • (?:n. ) : 하나 이상의 줄바꿈과 그 뒤에 공백이 아닌 문자( )가 하나 이상 나오는 것과 일치하는 비캡처 그룹입니다.

사용법

이 정규식을 사용하려면 다음 단계를 따르세요.

import re

text = """
some Varying TEXT
...
[lines of uppercase text]
...
"""

regex = re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)

match = regex.search(text)
if match:
    lowercase_text = match.group(1)
    uppercase_text = match.group(2)
    # Process the captured text as needed

위 내용은 여러 줄의 텍스트 블록을 Python 정규 표현식과 일치시키는 방법: 소문자 및 대문자 구성 요소 캡처?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.