Operator Pengulangan Karakter dalam Regex
Ada situasi di mana kita perlu menunjukkan bahwa
karakter diulang sejumlah tertentu
kali. Jika jumlah pengulangan yang tepat tidak diketahui,
maka kita bisa menuliskannya beberapa kali
- 'aaaa'. Tapi apa yang harus dilakukan jika perlu
mengatakan seperti ini: ulangi satu kali atau lebih?
Untuk ini ada operator (quantifier)
pengulangan: plus + (satu kali atau lebih),
tanda bintang * (nol kali atau lebih),
dan tanda tanya ? (nol kali atau satu kali).
Operator-operator ini berlaku untuk karakter
yang ada di depan mereka.
Mari kita lihat cara kerja operator-operator ini pada contoh.
Contoh
Temukan semua substring sesuai pola huruf
'x', huruf 'a' satu kali atau lebih,
huruf 'x':
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
Hasil eksekusi kode:
'xx ! ! ! xbx'
Contoh
Temukan semua substring sesuai pola huruf
'x', huruf 'a' nol kali atau lebih,
huruf 'x':
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! ! ! xbx'
Contoh
Temukan semua substring sesuai pola huruf
'x', huruf 'a' nol kali atau satu kali,
huruf 'x':
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
Hasil eksekusi kode:
'! ! xaax xbx'
Tugas Praktis
Diberikan string:
txt = 'aa aba abba abbba abca abea'
Tulis regex yang akan menemukan string
'aba', 'abba', 'abbba'
sesuai pola: huruf 'a', huruf
'b' sebanyak apapun, huruf
'a'.
Diberikan string:
txt = 'aa aba abba abbba abca abea'
Tulis regex yang akan menemukan string
'aa', 'aba', 'abba',
'abbba' sesuai pola: huruf
'a', huruf 'b' sebanyak apapun
(termasuk nol kali), huruf
'a'.
Diberikan string:
txt = 'aa aba abba abbba abca abea'
Tulis regex yang akan menemukan string
'aa', 'aba' sesuai pola:
huruf 'a', huruf 'b' satu
kali atau nol, huruf 'a'.
Diberikan string:
txt = 'aa aba abba abbba abca abea'
Tulis regex yang akan menemukan string
'aa', 'aba', 'abba',
'abbba', tanpa menangkap 'abca'
dan 'abea'.