Multiregelmaat in Python regex
Reguliere expressies hebben hun eigen kenmerken bij het werken met meerdere regels. Laten we ze uitzoeken aan de hand van het volgende voorbeeld van een string die gewone karakters, nieuwe regel karakters en tabkarakters bevat:
txt = '''111
222
333
444'''
Nieuwe regel
Nieuwe regel karakters kunnen worden gevangen met
behulp van het commando '\n':
res = re.sub('\n', '!', txt)
print(res)
Het resultaat is de volgende string (de tussenruimtes zijn tabs):
'111! 222! 333! 444'
Tab
Tabkarakters kunnen worden gevangen met behulp van
het commando '\t':
res = re.sub('\t', '!', txt)
print(res)
Resultaat van de code:
'''
!111
!222
!333
!444
'''
Werking van de punt
Het commando '.' vangt geen nieuwe regel karakters
in een string met meerdere regels:
res = re.sub('.', '!', txt)
print(res)
Resultaat van de code:
'''
!!!
!!!!
!!!!
!!!!
'''
Elk karakter
Om alle karakters in een string met meerdere regels te vangen,
wordt een slimme truc gebruikt in de vorm van de combinatie
[\s\S]. Deze constructie vindt alle gewone karakters
en alle nieuwe regels:
res = re.sub('[\s\S]', '!', txt)
print(res)
Resultaat van de code:
'!!!!!!!!!!!!!!!!!!'
Dollar
Het commando '
in de multiregelmodus
zal het einde van elke regel vinden:
res = re.sub('
', '!', txt)
print(res)
Resultaat van de code:
'''
111!
222!
333!
444!
'''
Praktische opdrachten
Gegeven de string:
'''
abc
def
ghi
jkl
'''
Schrijf een reguliere expressie die van deze string de volgende maakt:
'''
abc!
def!
ghi!
jkl!
'''
Gegeven de string:
'''
abc
def
ghi
jkl
'''
Schrijf een reguliere expressie die van deze string de volgende maakt:
'''
! abc
! def
! ghi
! jkl
'''
Gegeven de string:
'''
abc
def
ghi
jkl
'''
Schrijf een reguliere expressie die van deze string de volgende maakt:
'''!
abc
def
ghi
jkl
!'''
Gegeven de string:
'''
abc
def
ghi
jkl
'''
Schrijf een reguliere expressie die van deze string de volgende maakt:
'''!
! abc
! def
! ghi
! jkl
!'''
Gegeven de string:
'''
abc
def
ghi
jkl
'''
Schrijf een reguliere expressie die van deze string de volgende maakt:
'''!
abc!
def!
ghi!
jkl!
!'''
Gegeven de string:
'''
abc
def
ghi
jkl
'''
Schrijf een reguliere expressie die van deze string de volgende maakt:
'''
!abc
!def
!ghi
!jkl
'''