Multibaris dalam Regex Python
Ekspresi reguler saat bekerja dengan string multibaris memiliki karakteristiknya sendiri. Mari kita pelajari melalui contoh string berikut yang berisi karakter biasa, karakter baris baru dan tab:
txt = '''111
222
333
444'''
Baris Baru
Karakter baris baru dapat ditangkap dengan
perintah '\n':
res = re.sub('\n', '!', txt)
print(res)
Hasilnya akan menampilkan string berikut (jarak antar baris adalah tab):
'111! 222! 333! 444'
Tab
Karakter tab dapat ditangkap dengan
perintah '\t':
res = re.sub('\t', '!', txt)
print(res)
Hasil eksekusi kode:
'''
!111
!222
!333
!444
'''
Cara Kerja Titik
Perintah '.' untuk string multibaris
tidak menangkap karakter baris baru:
res = re.sub('.', '!', txt)
print(res)
Hasil eksekusi kode:
'''
!!!
!!!!
!!!!
!!!!
'''
Karakter Apapun
Untuk menangkap semua karakter dalam string multibaris,
digunakan trik pintas berupa
kombinasi [\s\S]. Konstruksi seperti ini
akan menemukan semua karakter biasa dan semua baris
baru:
res = re.sub('[\s\S]', '!', txt)
print(res)
Hasil eksekusi kode:
'!!!!!!!!!!!!!!!!!!'
Dollar
Perintah '$' dalam mode multibaris
akan menangkap akhir setiap baris:
res = re.sub('$', '!', txt)
print(res)
Hasil eksekusi kode:
'''
111!
222!
333!
444!
'''
Tugas Praktis
Diberikan string:
'''
abc
def
ghi
jkl
'''
Tuliskan regex yang akan mengubah string ini menjadi berikut:
'''
abc!
def!
ghi!
jkl!
'''
Diberikan string:
'''
abc
def
ghi
jkl
'''
Tuliskan regex yang akan mengubah string ini menjadi berikut:
'''
! abc
! def
! ghi
! jkl
'''
Diberikan string:
'''
abc
def
ghi
jkl
'''
Tuliskan regex yang akan mengubah string ini menjadi berikut:
'''!
abc
def
ghi
jkl
!'''
Diberikan string:
'''
abc
def
ghi
jkl
'''
Tuliskan regex yang akan mengubah string ini menjadi berikut:
'''!
! abc
! def
! ghi
! jkl
!'''
Diberikan string:
'''
abc
def
ghi
jkl
'''
Tuliskan regex yang akan mengubah string ini menjadi berikut:
'''!
abc!
def!
ghi!
jkl!
!'''
Diberikan string:
'''
abc
def
ghi
jkl
'''
Tuliskan regex yang akan mengubah string ini menjadi berikut:
'''
!abc
!def
!ghi
!jkl
'''