Monirivisyys Pythonin säännöllisissä lausekkeissa
Säännöllisillä lausekkeilla on omat erityispiirteensä monirivisten merkkijonojen käsittelyssä. Tutkitaanpa niitä seuraavan merkkijonon avulla, joka sisältää tavallisia merkkejä, rivinvaihtoja ja sarkainmerkkejä:
pythontxt = '''111
222
333
444'''
Rivinvaihto
Rivinvaihtomerkit voidaan napata käyttämällä
komentoa '\n':
pythonres = re.sub('\n', '!', txt)
print(res)
Tuloksena saadaan seuraava merkkijono (rivien väliset välit ovat sarkainmerkkejä):
python'111! 222! 333! 444'
Sarkain
Sarkainmerkit voidaan napata käyttämällä
komentoa '\t':
pythonres = re.sub('\t', '!', txt)
print(res)
Koodin suorituksen tulos:
python'''
!111
!222
!333
!444
'''
Pisteen toiminta
Komento '.' moniriviselle merkkijonolle
ei nappaa rivinvaihtomerkkejä:
pythonres = re.sub('.', '!', txt)
print(res)
Koodin suorituksen tulos:
python'''
!!!
!!!!
!!!!
!!!!
'''
Mikä tahansa merkki
Kaikkien merkkien napaisemiseksi monirivisessä
merkkijonossa käytetään ovelaa temppua muodossa
[\s\S]. Tällainen rakenne
löytää kaikki tavalliset merkit ja kaikki rivinvaihdot:
pythonres = re.sub('[\s\S]', '!', txt)
print(res)
Koodin suorituksen tulos:
python'!!!!!!!!!!!!!!!!!!'
Dollarimerkki
Komento ' monirivitilassa
nappaa jokaisen rivin lopun:
pythonres = re.sub('
', '!', txt)
print(res)
Koodin suorituksen tulos:
python'''
111!
222!
333!
444!
'''
Käytännön tehtävät
Annettu merkkijono:
python'''
abc
def
ghi
jkl
'''
Kirjoita säännöllinen lauseke, joka muuttaa tästä merkkijonosta seuraavan:
python'''
abc!
def!
ghi!
jkl!
'''
Annettu merkkijono:
python'''
abc
def
ghi
jkl
'''
Kirjoita säännöllinen lauseke, joka muuttaa tästä merkkijonosta seuraavan:
python'''
! abc
! def
! ghi
! jkl
'''
Annettu merkkijono:
python'''
abc
def
ghi
jkl
'''
Kirjoita säännöllinen lauseke, joka muuttaa tästä merkkijonosta seuraavan:
python'''!
abc
def
ghi
jkl
!'''
Annettu merkkijono:
python'''
abc
def
ghi
jkl
'''
Kirjoita säännöllinen lauseke, joka muuttaa tästä merkkijonosta seuraavan:
python'''!
! abc
! def
! ghi
! jkl
!'''
Annettu merkkijono:
python'''
abc
def
ghi
jkl
'''
Kirjoita säännöllinen lauseke, joka muuttaa tästä merkkijonosta seuraavan:
python'''!
abc!
def!
ghi!
jkl!
!'''
Annettu merkkijono:
python'''
abc
def
ghi
jkl
'''
Kirjoita säännöllinen lauseke, joka muuttaa tästä merkkijonosta seuraavan:
python'''
!abc
!def
!ghi
!jkl
'''