Pengenalan kepada Ungkapan Biasa dalam Python
Ungkapan biasa ialah perintah untuk carian dan penggantian yang kompleks (atau sekadar carian). Ia membolehkan anda melakukan perkara yang sangat menarik, tetapi malangnya, agak sukar untuk dikuasai.
Untuk mula bekerja dengan ungkapan biasa
dalam Python, kita perlu mengimport modul khas
re:
import re
Modul re termasuk kaedah-kaedah
yang bertujuan untuk bekerja dengan ungkapan
biasa. Ungkapan biasa
merupakan satu set perintah dan terdiri
daripada dua jenis aksara: daripada mereka yang
menandakan diri mereka sendiri dan daripada aksara-perintah,
yang dipanggil aksara khas.
Pengenalan kepada ungkapan biasa adalah lebih baik
dimulakan dengan contoh kaedah sub, yang
digunakan untuk menggantikan dalam rentetan. Parameter pertama
kaedah menerima apa yang perlu ditukar,
parameter kedua - kepada apa yang perlu ditukar. Dalam parameter ketiga
kita tentukan rentetan di mana penggantian perlu dilakukan.
Dalam parameter keempat yang tidak wajib
kita tentukan bilangan penggantian. Penggantian paling mudah
menggunakan kaedah ini akan
kelihatan seperti ini:
res = re.sub('a', '!', 'bab')
print(res) # akan output 'b!b'
Seperti yang anda perhatikan, dalam ungkapan biasa
huruf menandakan diri mereka sendiri. Perkara yang sama
berlaku untuk nombor. Mari kita gantikan nombor
2 dengan !:
res = re.sub('2', '!', '12abc3')
print(res) # akan output '1!abc3'
Titik pula ialah aksara khas
dan menandakan sebarang aksara. Dalam contoh
berikutnya, mari cari subrentetan mengikut
corak ini: huruf 'x', kemudian sebarang
aksara, kemudian huruf 'x' sekali lagi:
res = re.sub('x.x', '!', 'xax eee')
print(res) # akan output '! eee'
Diberi rentetan:
txt = 'ahb acb aeb aeeb adcb axeb'
Tulis ungkapan biasa yang akan mencari rentetan
'ahb', 'acb', 'aeb'
mengikut corak: huruf 'a', sebarang
aksara, huruf 'b'.
Diberi rentetan:
txt = 'aba aca aea abba adca abea'
Tulis ungkapan biasa yang akan mencari rentetan
'abba', 'adca', 'abea'
mengikut corak: huruf 'a', 2
sebarang aksara, huruf 'a'.
Diberi rentetan:
txt = 'aba aca aea abba adca abea'
Tulis ungkapan biasa yang akan mencari rentetan
'abba' dan 'abea', tanpa mengambil
'adca'.