Flerradighet i Pythons reguljära uttryck
Reguljära uttryck har sina särdrag när de arbetar med flerradiga strängar. Låt oss undersöka dem med hjälp av följande sträng, som innehåller vanliga tecken, radbrytningstecken och tabbtecken:
pythontxt = '''111
222
333
444'''
Radbrytning
Radbrytningstecken kan fångas med
kommandot '\n':
pythonres = re.sub('\n', '!', txt)
print(res)
Som ett resultat kommer följande sträng att skrivas ut (mellanrummen mellan raderna är tabbar):
python'111! 222! 333! 444'
Tabb
Tabbtecken kan fångas med hjälp av
kommandot '\t':
pythonres = re.sub('\t', '!', txt)
print(res)
Resultat av exekveringen:
python'''
!111
!222
!333
!444
'''
Punkten fungerar
Kommandot '.' för en flerradig sträng
fångar inte radbrytningstecken:
pythonres = re.sub('.', '!', txt)
print(res)
Resultat av exekveringen:
python'''
!!!
!!!!
!!!!
!!!!
'''
Vilket tecken som helst
För att fånga alla tecken i en flerradig
sträng används ett knepigt trick i form av
kombinationen [\s\S]. Denna konstruktion
kommer att hitta alla vanliga tecken och alla radbrytningar:
pythonres = re.sub('[\s\S]', '!', txt)
print(res)
Resultat av exekveringen:
python'!!!!!!!!!!!!!!!!!!'
Dollar
Kommandot ' i flerradsläge
kommer att fånga slutet på varje rad:
pythonres = re.sub('
', '!', txt)
print(res)
Resultat av exekveringen:
python'''
111!
222!
333!
444!
'''
Praktiska uppgifter
Given en sträng:
python'''
abc
def
ghi
jkl
'''
Skriv ett reguljärt uttryck som gör följande av denna sträng:
python'''
abc!
def!
ghi!
jkl!
'''
Given en sträng:
python'''
abc
def
ghi
jkl
'''
Skriv ett reguljärt uttryck som gör följande av denna sträng:
python'''
! abc
! def
! ghi
! jkl
'''
Given en sträng:
python'''
abc
def
ghi
jkl
'''
Skriv ett reguljärt uttryck som gör följande av denna sträng:
python'''!
abc
def
ghi
jkl
!'''
Given en sträng:
python'''
abc
def
ghi
jkl
'''
Skriv ett reguljärt uttryck som gör följande av denna sträng:
python'''!
! abc
! def
! ghi
! jkl
!'''
Given en sträng:
python'''
abc
def
ghi
jkl
'''
Skriv ett reguljärt uttryck som gör följande av denna sträng:
python'''!
abc!
def!
ghi!
jkl!
!'''
Given en sträng:
python'''
abc
def
ghi
jkl
'''
Skriv ett reguljärt uttryck som gör följande av denna sträng:
python'''
!abc
!def
!ghi
!jkl
'''