Pengenalan Ekspresi Reguler di Python
Ekspresi reguler adalah perintah untuk pencarian dan penggantian yang kompleks (atau sekadar pencarian). Mereka memungkinkan untuk melakukan hal-hal yang sangat menarik, tetapi sayangnya, cukup sulit untuk dikuasai.
Untuk mulai bekerja dengan ekspresi reguler
di Python, kita perlu mengimpor modul khusus
re:
import re
Modul re mencakup metode-metode
yang ditujukan untuk bekerja dengan ekspresi
reguler. Ekspresi reguler
merupakan sekumpulan perintah dan terdiri
dari dua jenis simbol: dari simbol yang
mewakili dirinya sendiri dan dari simbol-perintah,
yang disebut karakter khusus.
Pengenalan ekspresi reguler lebih baik
dimulai dengan contoh metode sub, yang
digunakan untuk melakukan penggantian dalam string. Parameter pertama
metode ini menerima apa yang akan diganti,
parameter kedua - dengan apa menggantinya. Pada parameter ketiga
kita tentukan string di mana penggantian perlu dilakukan.
Pada parameter keempat yang opsional
kita tentukan jumlah penggantian. Penggantian paling sederhana
dengan metode ini akan
terlihat seperti ini:
res = re.sub('a', '!', 'bab')
print(res) # akan menampilkan 'b!b'
Seperti yang Anda perhatikan, dalam ekspresi reguler
huruf mewakili dirinya sendiri. Hal yang sama
berlaku juga untuk angka. Mari kita ganti angka
2 dengan !:
res = re.sub('2', '!', '12abc3')
print(res) # akan menampilkan '1!abc3'
Namun, titik adalah karakter khusus
dan mewakili karakter apa pun. Dalam contoh
berikut ini, mari kita cari substring dengan
pola seperti ini: huruf 'x', lalu karakter apa
pun, lalu huruf 'x' lagi:
res = re.sub('x.x', '!', 'xax eee')
print(res) # akan menampilkan '! eee'
Diberikan string:
txt = 'ahb acb aeb aeeb adcb axeb'
Tuliskan ekspresi reguler yang akan menemukan string
'ahb', 'acb', 'aeb'
berdasarkan pola: huruf 'a', karakter apa
pun, huruf 'b'.
Diberikan string:
txt = 'aba aca aea abba adca abea'
Tuliskan ekspresi reguler yang akan menemukan string
'abba', 'adca', 'abea'
berdasarkan pola: huruf 'a', 2
karakter apa pun, huruf 'a'.
Diberikan string:
txt = 'aba aca aea abba adca abea'
Tuliskan ekspresi reguler yang akan menemukan string
'abba' dan 'abea', tanpa menangkap
'adca'.