Multilínea en expresiones regulares de Python
Las expresiones regulares al trabajar con cadenas multilínea tienen sus particularidades. Vamos a analizarlas usando como ejemplo la siguiente cadena, que contiene caracteres ordinarios, caracteres de salto de línea y tabulaciones:
pythontxt = '''111
222
333
444'''
Salto de línea
Los caracteres de salto de línea pueden capturarse
usando el comando '\n':
pythonres = re.sub('\n', '!', txt)
print(res)
Como resultado se mostrará la siguiente cadena (los espacios entre líneas son tabulaciones):
python'111! 222! 333! 444'
Tabulación
Los caracteres de tabulación pueden capturarse usando
el comando '\t':
pythonres = re.sub('\t', '!', txt)
print(res)
Resultado de ejecutar el código:
python'''
!111
!222
!333
!444
'''
Comportamiento del punto
El comando '.' para una cadena multilínea
no captura caracteres de salto de línea:
pythonres = re.sub('.', '!', txt)
print(res)
Resultado de ejecutar el código:
python'''
!!!
!!!!
!!!!
!!!!
'''
Cualquier carácter
Para capturar todos los caracteres en una cadena
multilínea, se usa un truco ingenioso en forma de
combinación [\s\S]. Esta construcción
encontrará todos los caracteres ordinarios y todos los saltos
de línea:
pythonres = re.sub('[\s\S]', '!', txt)
print(res)
Resultado de ejecutar el código:
python'!!!!!!!!!!!!!!!!!!'
Dólar
El comando '$' en modo multilínea
capturará el final de cada línea:
pythonres = re.sub('$', '!', txt)
print(res)
Resultado de ejecutar el código:
python'''
111!
222!
333!
444!
'''
Tareas prácticas
Se da la cadena:
python'''
abc
def
ghi
jkl
'''
Escriba una expresión regular que transforme esta cadena en la siguiente:
python'''
abc!
def!
ghi!
jkl!
'''
Se da la cadena:
python'''
abc
def
ghi
jkl
'''
Escriba una expresión regular que transforme esta cadena en la siguiente:
python'''
! abc
! def
! ghi
! jkl
'''
Se da la cadena:
python'''
abc
def
ghi
jkl
'''
Escriba una expresión regular que transforme esta cadena en la siguiente:
python'''!
abc
def
ghi
jkl
!'''
Se da la cadena:
python'''
abc
def
ghi
jkl
'''
Escriba una expresión regular que transforme esta cadena en la siguiente:
python'''!
! abc
! def
! ghi
! jkl
!'''
Se da la cadena:
python'''
abc
def
ghi
jkl
'''
Escriba una expresión regular que transforme esta cadena en la siguiente:
python'''!
abc!
def!
ghi!
jkl!
!'''
Se da la cadena:
python'''
abc
def
ghi
jkl
'''
Escriba una expresión regular que transforme esta cadena en la siguiente:
python'''
!abc
!def
!ghi
!jkl
'''