Expresión regular para hacer coincidir bloques de texto de varias líneas
La coincidencia de texto que abarca varias líneas puede presentar desafíos en la construcción de expresiones regulares. Considere el siguiente texto de ejemplo:
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)
El objetivo es capturar dos componentes: la parte "algo de TEXTO variable" y todas las líneas posteriores de texto en mayúsculas, excluyendo la línea vacía.
Enfoques incorrectos:
Algunos enfoques incorrectos para resolver este problema incluyen:
Solución:
La siguiente expresión regular captura correctamente los componentes deseados:
^(. )\n((?:\n. ) )
Aquí hay un desglose de sus componentes:
Uso:
Para usar esta expresión regular en Python, puede usar el siguiente código:
import re
pattern = re.compile(r"^(. )\n((?:\n. ) )", re.MULTILINE)
Luego puede usar el método match() para encontrar coincidencias en una cadena :
match = pattern.match(text)
if match:
text1 = match.group(1)
text2 = match.group(2)
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3