Pelbagai Baris dalam Regex Python
Ungkapan biasa mempunyai keunikan tersendiri apabila bekerja dengan rentetan pelbagai baris. Mari kita fahami melalui contoh rentetan berikut yang mengandungi aksara biasa, aksara baris baru dan tab:
txt = '''111
222
333
444'''
Baris Baru
Aksara baris baru boleh ditangkap
menggunakan perintah '\n':
res = re.sub('\n', '!', txt)
print(res)
Hasilnya, rentetan berikut akan dipaparkan (jarak antara baris adalah tab):
'111! 222! 333! 444'
Tab
Aksara tab boleh ditangkap menggunakan
perintah '\t':
res = re.sub('\t', '!', txt)
print(res)
Hasil pelaksanaan kod:
'''
!111
!222
!333
!444
'''
Tingkah Laku Titik
Perintah '.' untuk rentetan pelbagai baris
tidak menangkap aksara baris baru:
res = re.sub('.', '!', txt)
print(res)
Hasil pelaksanaan kod:
'''
!!!
!!!!
!!!!
!!!!
'''
Mana-mana Aksara
Untuk menangkap semua aksara dalam rentetan
pelbagai baris, satu helah digunakan iaitu
gabungan [\s\S]. Konstruksi sedemikian
akan menemui semua aksara biasa dan semua baris
baru:
res = re.sub('[\s\S]', '!', txt)
print(res)
Hasil pelaksanaan kod:
'!!!!!!!!!!!!!!!!!!'
Dolar
Perintah '
dalam mod pelbagai baris
akan menangkap hujung setiap baris:
res = re.sub('
', '!', txt)
print(res)
Hasil pelaksanaan kod:
'''
111!
222!
333!
444!
'''
Masalah Praktikal
Diberi rentetan:
'''
abc
def
ghi
jkl
'''
Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:
'''
abc!
def!
ghi!
jkl!
'''
Diberi rentetan:
'''
abc
def
ghi
jkl
'''
Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:
'''
! abc
! def
! ghi
! jkl
'''
Diberi rentetan:
'''
abc
def
ghi
jkl
'''
Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:
'''!
abc
def
ghi
jkl
!'''
Diberi rentetan:
'''
abc
def
ghi
jkl
'''
Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:
'''!
! abc
! def
! ghi
! jkl
!'''
Diberi rentetan:
'''
abc
def
ghi
jkl
'''
Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:
'''!
abc!
def!
ghi!
jkl!
!'''
Diberi rentetan:
'''
abc
def
ghi
jkl
'''
Tulis ungkapan biasa yang akan menukar rentetan ini kepada berikut:
'''
!abc
!def
!ghi
!jkl
'''