Expressão regular para correspondência de blocos de texto multilinha
A correspondência de texto que abrange várias linhas pode apresentar desafios na construção de expressões regulares. Considere o seguinte texto de exemplo:
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)
O objetivo é capturar dois componentes: a parte "algum TEXTO Variável" e todas as linhas subsequentes de texto em maiúsculas, excluindo a linha vazia.
Abordagens incorretas:
Algumas abordagens incorretas para resolver esse problema incluem:
Solução:
A seguinte expressão regular captura corretamente os componentes desejados:
^(. )\n((?:\n. ) )
Aqui está uma análise de seus componentes:
Uso:
Para usar esta expressão regular em Python, você pode usar o seguinte código:
import re
pattern = re.compile(r"^(. )\n((?:\n. ) )", re.MULTILINE)
Você pode então usar o método match() para encontrar correspondências em uma string :
match = pattern.match(text)
if match:
text1 = match.group(1)
text2 = match.group(2)
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3