Grup Karakter dalam Ekspresi Reguler Python
Ada perintah khusus yang
memungkinkan untuk memilih sekaligus seluruh grup
karakter. Perintah \d berarti digit
dari 0 hingga 9. Perintah \w
menandakan digit, huruf Latin, atau tanda
garis bawah. Perintah \s menandakan
spasi atau karakter spasi: spasi,
baris baru, tab. Nilai perintah dapat dibalik
dengan menulis huruf besar:
contohnya, jika \d adalah digit, maka
\D adalah bukan digit.
Contoh
Mari kita cari semua digit:
txt = '1 12 123'
res = re.sub('\d', '!', txt)
print(res)
Hasil eksekusi kode:
'! !! !!!'
Contoh
Operator pengulangan menganggap perintah-grup
sebagai satu kesatuan, artinya tanda kurung pengelompokan
tidak diperlukan. Dalam contoh berikut, pola pencarian
terlihat seperti ini: digit dari 0 hingga
9 satu kali atau lebih:
txt = '1 12 123 abc @@@'
res = re.sub('\d+', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! ! abc @@@'
Contoh
Dalam contoh berikut, pola pencarian terlihat
seperti ini: apa saja satu kali atau lebih,
tapi bukan digit dari 0 hingga 9:
txt = '123abc3@@'
res = re.sub('\D+', '!', txt)
print(res)
Hasil eksekusi kode:
'123!3!'
Contoh
Dalam contoh ini, pola pencarian terlihat seperti ini: karakter spasi satu kali:
txt = '1 12 123 abc @@@'
res = re.sub('\s', '!', txt)
print(res)
Hasil eksekusi kode:
'1!12!123!abc!@@@'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: BUKAN karakter spasi satu kali atau lebih
kali. Semua substring yang dipisahkan
oleh spasi, akan diganti dengan '!':
txt = '1 12 123 abc @@@'
res = re.sub('\S+', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! ! ! !'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: digit atau huruf satu kali atau lebih
kali. Semua substring yang terdiri dari digit
dan huruf, akan diganti dengan '!':
txt = '1 12 123a Abc @@@'
res = re.sub('\w+', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! ! ! @@@'
Contoh
Dalam contoh ini, pola pencarian terlihat
seperti ini: BUKAN digit dan BUKAN huruf satu kali atau lebih
kali. Dalam kasus kami, definisi ini
mencakup '@@@' dan semua spasi
(mereka juga bukan digit dan bukan huruf).
Perhatikan bahwa di akhir ada satu
'!' - yang diubah dari string
' @@@' - dengan spasi di depannya:
txt = '1 12 123 Abc @@@'
res = re.sub('\W+', '!', txt)
print(res)
Hasil eksekusi kode:
'1!12!123!Abc!'
Tugas Praktis
Diberikan string:
txt = 'a1a a2a a3a a4a a5a aba aca'
Tulis regex yang akan menemukan string,
di mana di tepinya terdapat huruf 'a',
dan di antaranya satu digit.
Diberikan string:
txt = 'a1a a22a a333a a4444a a55555a aba aca'
Tulis regex yang akan menemukan string,
di mana di tepinya terdapat huruf 'a',
dan di antaranya sebanyak digit apapun.
Diberikan string:
txt = 'aa a1a a22a a333a a4444a a55555a aba aca'
Tulis regex yang akan menemukan string,
di mana di tepinya terdapat huruf 'a',
dan di antaranya sebanyak digit apapun (termasuk
nol digit, yaitu string
'aa').
Diberikan string:
txt = 'avb a1b a2b a3b a4b a5b abb acb'
Tulis regex yang akan menemukan string
dengan jenis berikut: di tepinya terdapat huruf
'a' dan 'b', dan di antaranya -
bukan angka dan bukan spasi.
Diberikan string:
txt = 'ave a#b a2b a$b a4b a5b a-b acb'
Tulis regex yang akan menemukan string
dengan jenis berikut: di tepinya terdapat huruf
'a' dan 'b', dan di antaranya -
bukan huruf, bukan digit, dan bukan spasi.
Diberikan string:
txt = 'ave a#a a2a a$a a4a a5a a-a aca'
Tulis regex yang akan mengganti semua
spasi dengan '!'.