Set Karakter dalam Ekspresi Reguler Python
Grup karakter \d dan \w tidak
sangat fleksibel. Bahkan tugas sederhana seperti
menemukan semua huruf, tetapi bukan angka -
tidak dapat diselesaikan oleh mereka. Untuk tugas seperti itu
sebaiknya gunakan kurung siku,
yang mewakili operasi 'atau'.
Kurung siku menggantikan satu
karakter, salah satu yang tercantum di dalamnya.
Contohnya, seperti ini: x[abc]x - kita
mengatakan bahwa di tepi harus ada huruf
x, dan di dalam - satu karakter: atau 'a',
atau 'b', atau 'c'.
Setelah kurung siku dapat ditulis
operator pengulangan. Contohnya, seperti ini:
x[abc]+x - kita mengatakan bahwa di dalam
x bisa ada sejumlah karakter
'a', 'b' dan 'c' -
dalam kombinasi apa pun.
Tidak hanya dapat membuat daftar karakter, tetapi
juga membuat grup karakter dengan menulis di antara
dua karakter tanda hubung. Contohnya, seperti ini:
[a-d] - kita mendapatkan semua karakter dari
'a' hingga 'd'.
Mari kita lihat contohnya.
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada huruf apa pun dari
'a' hingga 'z':
Hasil eksekusi kode:
'! ! ! x@x'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada huruf apa pun dari
'a' hingga 'k':
txt = 'xax xbx xmx x@x'
res = re.sub('x[a-k]x', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! xmx x@x'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada huruf apa pun dari
'A' hingga 'Z':
txt = 'xax xBx xcx x@x'
res = re.sub('x[A-Z]x', '!', txt)
print(res)
Hasil eksekusi kode:
'xax ! xcx x@x'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada angka apa pun dari 0
hingga 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[0-9]x', '!', txt)
print(res)
Hasil eksekusi kode:
'xax ! ! ! x@x'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada angka apa pun dari 3
hingga 7:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[3-7]x', '!', txt)
print(res)
Hasil eksekusi kode:
'xax x1x ! ! x@x'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada huruf apa pun dari
'a' hingga 'z' atau angka dari
1 hingga 9:
txt = 'xax x1x x3x x5x x@x'
res = re.sub('x[a-z1-9]x', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! ! ! x@x'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada huruf apa pun dari
'a' hingga 'z' atau huruf dari
'A' hingga 'Z':
txt = 'xax xBx xcx x5x x@x'
res = re.sub('x[a-zA-Z]x', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! ! x5x x@x'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada huruf apa pun dari
'a' hingga 'z' atau angka 1,
2:
txt = 'xax xbx x1x x2x x3x'
res = re.sub('x[a-z12]x', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! ! ! x3x'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: di antara x ada huruf dari 'a'
hingga 'z' dalam jumlah dari 1 dan
lebih:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]+x', '!', txt)
print(res)
Hasil eksekusi kode:
'xx ! ! ! x123x xa3x'
Contoh
Mari kita buat agar jumlah huruf bisa juga nol:
txt = 'xx xabesx xaadx x123x xa3x'
res = re.sub('x[a-z]*x', '!', txt)
print(res)
Hasilnya kita akan mendapatkan:
'! ! ! ! x123x xa3x'
Contoh
Di dalam kurung siku juga dapat ditentukan karakter yang di-escape. Mari temukan urutan huruf dan angka, yang diulang nol kali atau lebih:
txt = 'xx x@x xadx xas12x xa3x'
res = re.sub('x[a-z\d]*x', '!', txt)
print(res)
Hasil eksekusi kode:
'! x@x ! ! !'
Contoh
Jika kita perlu menentukan kurung siku lain, maka kita juga harus meng-escape-nya:
txt = 'xx xrx xas[]x x3x'
res = re.sub('x[a-z\[\]]*x', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! ! x3x'
Tugas Praktis
Diberikan string:
txt = 'aba aea aca aza axa'
Tuliskan ekspresi reguler yang akan menemukan berdasarkan
pola berikut: di tepi ada huruf
'a', dan di antara mereka - huruf 'b',
'e' atau 'x'.
Diberikan string:
txt = 'a1a a3a a7a a9a aba'
Tuliskan ekspresi reguler yang akan menemukan berdasarkan
pola berikut: di tepi ada huruf
'a', dan di antara mereka - angka dari
3 hingga 6.
Diberikan string:
txt = 'aba aea afa aha aga'
Tuliskan ekspresi reguler yang akan menemukan berdasarkan
pola berikut: di tepi ada huruf
'a', dan di antara mereka - huruf dari
'a' hingga 'g'.
Diberikan string:
txt = 'aba aea afa aha aga'
Tuliskan ekspresi reguler yang akan menemukan berdasarkan
pola berikut: di tepi ada huruf
'a', dan di antara mereka - huruf dari
'a' hingga 'f' dan dari 'j'
hingga 'z'.
Diberikan string:
txt = 'aAa aea aEa aJa a3a'
Tuliskan ekspresi reguler yang akan menemukan berdasarkan
pola berikut: di tepi ada huruf
'a', dan di antara mereka - huruf dari
'a' hingga 'f' dan dari 'A'
hingga 'D'.
Diberikan string:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Tuliskan ekspresi reguler yang akan menemukan berdasarkan
pola berikut: di tepi ada huruf
'a', dan di antara mereka - huruf latin
kecil, tanpa menyentuh yang lain.
Diberikan string:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Tuliskan ekspresi reguler yang akan menemukan berdasarkan
pola berikut: di tepi ada huruf
'a', dan di antara mereka - huruf latin
kecil dan besar, tanpa menyentuh
yang lain.
Diberikan string:
txt = 'aAXa aeffa aGha aza ax23a a3sSa'
Tuliskan ekspresi reguler yang akan menemukan berdasarkan
pola berikut: di tepi ada huruf
'a', dan di antara mereka - huruf latin
kecil dan angka, tanpa menyentuh
yang lain.